标题:请问错在哪里了?
取消只看楼主
白衣吹水
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-4-10
 问题点数:0 回复次数:5 
请问错在哪里了?
这是个输入年月日求出该天是星期几的小程序.
第一次编译时,提示Y,D,M还没有初始化,我晕,貌似变量都是直接输入的,怎么还要初始化呢.再次编译,没有问题了.可是,当我开始组建时,程序一直都在linking,然后就没有反应了.关还得要在资源管理器才能关掉.
难道这个代码错了吗?如果错了,错在哪里了?


#include <stdio.h>
void main()
{
int Y,M,D;
int W;
printf("请输入年%d***月***%d日***%d\n",Y,M,D);
scanf("%d%d%d",&Y,&M,&D);
if(M==1)
--Y;
M=13;
if(M==2)
--Y;
M=14;
W = (D+2*M+3*(M+1)/5+Y+Y/4-Y/100+Y/400)%7+1;
switch(W)
{
case 1:printf("该日期为星期1");
case 2:printf("该日期为星期2");
case 3:printf("该日期为星期3");
case 4:printf("该日期为星期4");
case 5:printf("该日期为星期5");
case 6:printf("该日期为星期6");
case 7:printf("该日期为星期天");
}
}



搜索更多相关主题的帖子: void 资源管理器 include 年月日 
2007-04-14 21:25
白衣吹水
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-4-10
得分:0 
谢谢哦.不过我想不明白,为什么一定要返回0啊.还有,下面这个为什么按你的修改去改了,也没有成功啊


#include <stdio.h>
void main()
{
int Y,M,D;
int W;
printf("请输入年%d***月***%d日***%d\n",Y,M,D);
scanf("%d%d%d",&Y,&M,&D);
if(M=(1||2))
M = M == 1 ? (Y--, 13) : M;
W = (D+2*M+3*(M+1)/5+Y+Y/4-Y/100+Y/400)%7+1;
if(W==7)
printf("该日期为星期天");
else
printf("该日期为星期W\n",W);

}
2007-04-14 22:43
白衣吹水
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-4-10
得分:0 
上面这个代码问题也是第一次编译提示Y,D,M还没有初始化,但第二次编译就没问题了.修改成


#include <stdio.h>
int main()
{
int Y,M,D;
int W;
printf("请输入年%d***月***%d日***%d\n",Y,M,D);
scanf("%d%d%d",&Y,&M,&D);
if(M=(1||2))
M = M == 1 ? (Y--, 13) : M;
W = (D+2*M+3*(M+1)/5+Y+Y/4-Y/100+Y/400)%7+1;
if(W==7)
printf("该日期为星期天");
else
printf("该日期为星期W\n",W);
return 0;

}


2007-04-14 22:45
白衣吹水
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-4-10
得分:0 
按你的修改,第一个可以生成,但第二个不能.还是说什么没有初始化.究竟什么原因?我的变量都是输入的啊
2007-04-14 23:07
白衣吹水
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-4-10
得分:0 
为什么我输入后回车,刚刚给出答案就程序就关了?
2007-04-14 23:32
白衣吹水
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-4-10
得分:0 
不清楚拉,谢谢.应该是我的C软件有问题
2007-04-14 23:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-131921-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.059541 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved