洁净厂房照明如何布线:求助C语言问题,运行提示的错误找不出来,请帮忙!!

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 10:03:43
main()
{int month;
int year;
int day;
int sum;
int tian;
printf("please input year,month,day");
scanf("%d%d%d\n",&year,&month,&day);
if(year%400)
{
swith(month)
{
case 1:sum=0; break;
case 2:sum=31; break;
case 3:sum=60; break;
case 4:sum=91; break;
case 5:sun=121; break;
case 6:sum=152; break;
case 7:sum=182; break;
case 8:sum=213; break;
case 9:sum=244; break;
case 10:sum=274; break;
case 11:sum=305; break;
case 12:sum=335; break;
}
}
else
{ swith(month)
{ case 1:sum=0; break;
case 2:sum=31; break;
case 3:sum=59; break;
case 4:sum=90; break;
case 5:sum=120; break;
case 6:sum=151; break;
case 7:sum=181; break;
case 8:sum=212; break;
case 9:sum=243; break;
case 10:sum=273; break;
case 11:sum=304; break;
case 12:sum=334; break;}
}
tian=sum+day;
print("%d\n",tian);

}

语法错误有三处:
第一个错误:switch 你写成了swith,两个地方都是。
第二个错误:case 5:sun应该是sum吧
第三个错误:最后print应该是printf
程序的严密性来讲,你没有判断输入的年,月,日的数据的合法性,特别是月和日,如果月大于12呢,如果天在于当月所在的天数呢,这些都是不合法的数据,需要考虑进去在程序里验证。
我重新编了一个,你看看(没有考虑闰年,你自己需要考虑闰年的话,多加一句是闰年的判断把m[1]的值就变成29就可以了。而且你程序中的判断闰年的条件完全错了,应该是1、被4整除但不能被100整除。2、能被400整除
#include<stdio.h>
struct date{
int month;
int day;
}dd;
int m[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int whichday(int ,int);
void main(){
int c;
printf("请输入某天日期值(月,日):");
scanf("%d,%d",&dd.month,&dd.day);

if(dd.month>0&&dd.month<=12&&dd.day>0&&dd.day<=m[dd.month-1]){
c=whichday(dd.month,dd.day);
printf("是一年的第%d天\n",c);

}
else
printf("无效日期值");
}
int whichday(int month,int day){
int i,sum=0;

for(i=0;i<month-1;i++)
sum=sum+m[i] sum=sum+day;
return sum;
}