宝慕林7245676
2019-07-19 10:06
#include <stdio.h>
int main()
{
/* 定义需要计算的日期 */
int year = 2008;
int month =8;
int day = 8;
int sum=0;
for(int i=1,i<=month,i++)
{
if(i==1||3||5||7||8||10||12)
{
sum+=31;
}
else if(i==4||6||9||11)
{
sum+=30;
}
else
{
sum+=28;
}
}
if(year%4==0)
{
sum=sum+1;
}
else
{
sum+=0;
}
printf("这一天是该年的第%d天",sum);
return 0;
}
别的先不说。
if(i==1||3||5||7||8||10||12)和else if(i==4||6||9||11)这种写法是没有的。
#include <math.h>
#include <stdio.h>
int main()
{
/* 定义需要计算的日期 */
int year = 2008,month =8,day = 8,sum=0;
for(int i=1;i<month;i++)
{
switch(i)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:sum+=31;break;
case 4:
case 6:
case 9:
case 11:sum+=30;break;
case 2:if((year%4==0&&year!=100)||year%400==0)
sum+=29;
else
sum+=28;break;
}
}
sum+=day;
printf("这一天是该年的第%d天",sum);
system("pause");
return 0;
}
在打中文时忘记切换了。
嗯嗯。
啊啊啊啊,for循环的表达式之间要用分号,愣是没看出来
不提倡这样写,整个结构非常乱。极其影响思路,下面给你看看switch case的。
#include <math.h>
#include <stdio.h>
int main()
{
/* 定义需要计算的日期 */
int year = 2008;
int month = 3;
int day = 1;
int sum =0;
int i;
for(i=1;i<=month;i++)
{
if(i==month)
{
sum+=day;
}
else if (i==1||i==3||i==5||i==7||i==8||i==10||i==12)
{
sum+=31;
}
else if(i==2)
{
if((year%4==0&&year%100!=0)||(year%400==0))
sum+=29;
else
sum+=28;
}
else
{
sum+=30;
}
}
printf("这一天是该年的第%d天",sum);
return 0;
}
可以告诉我对的写法和原因吗,我真的不太懂了?
我现在只看出了这一个
我的printf没打分号?
这么多判断if else真的不好 你先看能不能改对。
for(i=1,i<=month;i++)这里还是没改。printf("这一天是该年的第%d天",sum)这里也错了。把这两个地方改了,输出是对的。但是程序依然是错的。else if(year%4==0&&year%100!=0&&i==2)
{
sum+=29;
}
else if(year%4!=0&&i==2)
{
sum+=28;
}
else
{
sum+=30;
}
这一截有问题。你改成2000.3.1试试就知道为什么了。
for(i=1,i<=month;i++)这里还是没改。printf("这一天是该年的第%d天",sum)这里也错了。把这两个地方改了,输出是对的。但是程序依然是错的。
else if(year%4==0&&year%100!=0&&i==2)
{
sum+=29;
}
else if(year%4!=0&&i==2)
{
sum+=28;
}
else
{
sum+=30;
}
这一截有问题。你改成2000.3.1试试就知道为什么了。
求指点指点错在那
for(i=1,i<=month;i++)这里没改。printf("这一天是该年的第%d天",sum)这里有问题。这两个地方改了后,程序可以成功运行答案也对。但是
else if(year%4==0&&year%100!=0&&i==2)
{
sum+=29;
}
else if(year%4!=0&&i==2)
{
sum+=28;
}
这里写错了。这个也不是闰年的表示方法。
哈哈,原谅我只是一个准大一的菜鸟。?
我的天哪,宝贝,让我来看看。
#include <stdio.h>
int main()
{
/* 定义需要计算的日期 */
int year = 2008;
int month = 8;
int day = 8;
int sum =0;
int i ;
for(i=1,i<=month;i++)
{
if(i==month)
{
sum+=day;
}
else if (i==1||i==3||i==5||i==7||i==8||i==10||i==12)
{
sum+=31;
}
else if(year%4==0&&year%100!=0&&i==2)
{
sum+=29;
}
else if(year%4!=0&&i==2)
{
sum+=28;
}
else
{
sum+=30;
}
}
printf("这一天是该年的第%d天",sum)
return 0;
}
这一段代码运行还是错误?
还没调试好吗?
好的。
你写完后调试好后把正确的程序给我看下,我给你看我写的。
是不是能整除4但不能整除100?
if(year%4==0)
{
sum=sum+1;
}
这个也是错的。你是想考虑闰年吧。闰年不是这样表示的。
switch case 简单些
emmm,没看出来,原谅我太水?
我想试试其他的写法,switch case 略麻烦一点
还有问题,你仔细看下这句。for(int i=1,i<=month,i++)
你没用switch case呀
请问代码还有什么问题吗?
是不是要这么写
if(i==1||i==3)
C语言入门
926207 学习 · 20797 问题
相似问题