新手求解决ACM练习系统其中一道题的改错
c语言吧
全部回复
仅看楼主
level 5
sun736259790 楼主
哪里出问题了?
2013年11月06日 11点11分 1
level 5
sun736259790 楼主
顶住,求大神
2013年11月06日 11点11分 2
level 5
sun736259790 楼主
大神啊
2013年11月06日 11点11分 3
level 11
看不明白。。。
2013年11月06日 11点11分 4
第二张图片是题目 第三张图片显示的 NO--Wrong answer 80% 必须显示Yes 100%才行
2013年11月06日 11点11分
第一张是我编的代码
2013年11月06日 11点11分
回复 sun736259790 :看上去没什么问题。。
2013年11月06日 11点11分
level 5
sun736259790 楼主

2013年11月06日 11点11分 5
level 11
自己加个断点,一步一步看,就知道错在哪里了。。
2013年11月06日 11点11分 6
加了断点试了的,还是有错。
2013年11月06日 12点11分
回复 sun736259790 :代码发来
2013年11月06日 12点11分
回复 Genius疯子 :谢谢你啊,我已经找到问题了。是最后面case 12: 中应该sum=334+i+d
2013年11月06日 12点11分
回复 sun736259790 :[汗]
2013年11月06日 12点11分
level 5
if判断语句的执行语句要加花括号吧?
2013年11月06日 12点11分 7
不是的,if只有一个执行语句就可以不用花括号
2013年11月06日 12点11分
level 1
#include<stdio.h>
#include<bios.h>1
int main()
{
int m,d,y,i,sum,key;
while(1)
{ scanf("%d%d%d",&m,&d,&y);
while(1){
if(m==0||d==0||y==0||m>12) {
printf("%s\n","m d y maybe a mistake!!!!");
break; }
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
{
if(d>31) {
printf("%s\n","d this is a mistake!!!!");
break; }
}
else
if(m==2)
if((y%4==0&&y%100!=0)||y%400==0) {
if(d>29) {
printf("%s\n","d this is a mistake!!!!");
break; }
}
else
{if(d>28){
printf("%s\n","d this is a mistake!!!!");
break; }
}
else
if(m==4||m==6||m==9||m==11)
if(d>30) {
printf("%s\n","d this is a mistake!!!!");
break; }
if((y%4==0&&y%100!=0)||y%400==0)
i=1;
else
i=0;
switch(m)
{
case 1:
sum=d;
break;
case 2:
sum=31+d;
break;
case 3:
sum=59+i+d;
break;
case 4:
sum=90+i+d;
break;
case 5:
sum=120+i+d;
break;
case 6:
sum=151+i+d;
break;
case 7:
sum=181+i+d;
break;
case 8:
sum=212+i+d;
break;
case 9:
sum=243+i+d;
break;
case 10:
sum=273+i+d;
break;
case 11 :
sum=304+i+d;
break;
case 12:
sum=344+i+d;
break;
}
printf("%d\n",sum);
break;
}
printf("%s\n","we go on????");
printf("%s\n","if you enter 'ESC',shut it down....");
printf("%s\n","enter anykey,continue input");
fflush(stdin);
key=bioskey(0)&0xff;
if((key&27)==27)
break;
}
return 0;
}
2013年11月07日 02点11分 8
想回复你的下一楼,不小心删掉了,郁闷。 你的if好多确实没看懂。
2013年11月07日 03点11分
level 8
你妹夫啊,你闰也只有二月份多一天吧,你怎么把每个月都加1了啊
2013年11月07日 02点11分 9
有if语句的,you know?
2013年11月07日 03点11分
有if语句的,you know?
2013年11月07日 03点11分
回复 sun736259790 :好吧,你不知道我说的是啥
2013年11月07日 03点11分
那是小写字母i 不是1
2013年11月07日 03点11分
level 10
你那判断语句不对
你用的什么破编译器。。赶紧换
g++编译不通过
&& 和 || 不能在没括号的情况下并列
2013年11月07日 05点11分 11
ACM练习系统
2013年11月07日 07点11分
ACM和VC++6.0都支持这种if语句,而且教材也这么讲了的。
2013年11月07日 07点11分
level 11
呵呵
嗟呼,燕雀安知鸿鹄之志哉?
   --来自助手版贴吧客户端
2013年11月07日 06点11分 12
level 4
11月到12月你跨度了40天.304 - -344 ,这样12的数据全是错的.
ACM的系统是抽出一堆符合题目条件的特殊数据一一输入看输出是不是对的(采用编译器根据做这个系统的人而定),正确率就是输出的百分比,你这个12月那组数据错了所以只有80%.
2013年11月07日 08点11分 13
嗯,以发现,谢谢
2013年11月07日 11点11分
level 1
LZ我运行了你那个东东,怎么没结果啊,呵呵,能编译成功但没有用啊,我用WIN-TC搞的,我看那个没有问题,虽然只是简单搞一下,但为什么没有PRINTF后面的结果呢,靠,你们好象编译不成功.....为什么啊....我只是想不明白哦,编译器的问题?
2013年11月07日 09点11分 15
我的能成功,可能是你的问题
2013年11月07日 11点11分
1