用c语言编写一个程序

假定1900年1月1号是星期1 输入一个日期算是星期几
下面是我写的代码 貌似都是错的 在我的基础上面帮我修正下
我c学不好很少用 最近要用到 麻烦大家了
#include <stdio.h>
void main()
{
int c,y,m,m1,m2,d,d2,i,; /*定义 c总和数,y年份,m月份,m1月(31d),m2(30d),d日期,d2闰年的附加天数,i用于显示星期*/
printf("请输入年份,月份,日期:");
scanf("%d%d%d",&y,&m,&d); /*从键盘获取年月日的值*/
d2=(y-1900)/4;

switch (m)
{case 1:
m=0;
case 2:
m=31;
case 3:
m=59;
case 4:
m=90;
case 5:
m=120;
case=6:
m=151;
case=7:
m=181;
case=8:
m=212;
case=9:
m=243;
case=10:
m=273;
case=11:
m=304;
case=12:
m=334 ; /*用switch语句在月份选择时候判断月份*/
}
c=(y-1900)*365+m+d+d2;
i=c%7
printf(“%i”);

}
1楼的修改了 但是还是不行啊 貌似不能打印出来啊 我要的是后面的p的能p的出来相关的星期几什么的 我现在修正后的代码是#include <stdio.h>
void main()
{
int c,y,m,d,r,i; /*定义 c总和数,y年份,m月份,d日期,r闰年的附加天数,i用于显示星期*/
printf("请输入年份,月份,日期:");
scanf("%d%d%d",&y,&m,&d); /*从键盘获取年月日的值*/
r=(y-1900)/4;

switch (m)
{case 1:
m=0;
case 2:
m=31;
case 3:
m=59;
case 4:
m=90;
case 5:
m=120;
case6:
m=151;
case7:
m=181;
case8:
m=212;
case9:
m=243;
case10:
m=273;
case11:
m=304;
case12:
m=334 ; /*用switch语句在月份选择时候判断月份*/
}
c=(y-1900)*365+m+d+r;
i=c%7;
if(i=0)
{
printf("星期天");
}
else
printf("%d",i);

怎么不能?这个程序以数字形式输出星期几,输入数字的格式是年月日之间用空间或者回车分隔(不要尝试其它分隔符)。你修改后的程序还有问题:第一是你算闰年的算法是错误的!第二是最后的if(i==0)你错写成了if(i=0),第三是没有将原程序的所有语法、逻辑错误改正,关于修改方法请参考以下程序!

//---------------------------------------------------------------------------
#include <stdio.h>
void main()
{
int c,y,m,m1,m2,d,d2,i; /*注意这里,去掉i后面的逗号*/
printf("请输入年份,月份,日期:");
scanf("%d%d%d",&y,&m,&d);
c=0;
for (i = 1900; i<y; i++) { /*判断闰年,原来的方法有误*/
if (i%4==0&&i%100||i%400==0) c+=366;
else c+=365;
}
if (y%4==0&&y%100||y%400==0) i=1; /*判断是不是闰年,如果是闰年就要在三月之后多加1天*/
else i=0;
switch (m) /*注意这里的整个switch语句,每个case后面不用等号,而要用空格,而且每个case后面的执行语句部分要用break;结束*/
{case 1:
m=0;break;
case 2:
m=31; break;
case 3:
m=59+i;
break;
case 4:
m=90+i; break;
case 5:
m=120+i; break;
case 6:
m=151+i; break;
case 7:
m=181+i; break;
case 8:
m=212+i; break;
case 9:
m=243+i; break;
case 10:
m=273+i; break;
case 11:
m=304+i; break;
case 12:
m=334+i;
}
c+=m+d; /*注意这里*/
i=c%7 ;
printf("%d",i); /*注意这里,周日则输出0*/

}
//---------------------------------------------------------------------------
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-12-15
#include <stdio.h>
void main()
{
int c,y,m,d,r,i; /*定义 c总和数,y年份,m月份,d日期,r闰年的附加天数,i用于显示星期*/
printf("请输入年份,月份,日期:");
scanf("%d%d%d",&y,&m,&d); //将这一句改为scanf("%d %d %d",&y,&m,&d),否则会一直等你输入或者必须输入一个数按一次回车
r=(y-1900)/4;

switch (m)
{case 1:
m=0;
case 2:
m=31;
case 3:
m=59;
case 4:
m=90;
case 5:
m=120;
case6: //case 6 注意中间的空格
m=151;
case7:
m=181;
case8:
m=212;
case9:
m=243;
case10:
m=273;
case11:
m=304;
case12:
m=334 ; /*用switch语句在月份选择时候判断月份*/
}
c=(y-1900)*365+m+d+r;
i=c%7;
if(i=0) //判断条件是if(i==0)
{
printf("星期天");
}
else
printf("%d",i);
} //最后少个括号
以上是程序中的语法错误,关于逻辑错误(如果有的话)我想楼主应该会解决吧
第2个回答  2008-12-15
这个年轻的时候做过,现在忘了阿

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网