一道c语言的题目,请各位帮帮忙急,急得很!!先谢谢各位!!

一道c语言的题目,请各位帮帮忙急,急得很!!先谢谢各位!!真不知道是哪里错了😣

#include<stdio.h>int main(){ int h,min,sec,t1,t2,t; while(~scanf("%d%d%d%d%d",&h,&min,&sec,&t1,&t2)) { if(t1>t2) {t=t1; t1=t2; t2=t;} h=h*30; min=min*6; sec=sec*6; t1=t1*30; t2=t2*30; printf("%d %d %d %d %d\n",h,min,sec,t1,t2); if(h==360) h=0; if(((h>t1&&h<t2)||(min>t1&&min<t2)||(sec>t1&&sec<t2))&& ((h>t2&&h<360||min>t2&&min<360||sec>t2&&sec<360)|| (h>=0&&h<t1||min>=0&&min<t1||sec>=0&&sec<t1))) printf("NO\n"); else printf("Yes\n"); } return 0;}

语法没发现问题,如果你说的是逻辑问题,那只能你自己核实,没有注释,不明白你这个代码想实现什么功能,除了赋值就是判断,我看那个很长的与或组合的条件语句,你逻辑上有没有理对,如果条件太长,你可以考虑把单个条件用变量接收,最后再用变量组条件句,可能会清晰点追问

追答

按题意,不考虑行走方向,不考虑时钟运动。

那么只要确保三指针在同一个区间(大到小 或 小到大)就能通过

按照你的写法,改的,你参考吧。PS:多写备注自己也看的方便

字数受限,代码贴不上,你匿名我又发不了私信,那我只能分段贴评论了。。。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-31
没有发现什么错误。你有什么问题?追问

A不了啊

emmm这个上传的时候忘记传题目了

追答

在while后、if(t1>t2)前加一段

if(h<1 || h>12 || min<0 || min>59 || sec<0 || sec>59 
        || t1<1 || t1>12 || t2<1 || t2>12 || t1==t2){
printf("Input error,redo:\n");
fflush(stdin);
continue;
}

试试……

追问

题目上已经给出了范围了

追答

题目上给出范围了你怎么不实现?你看看给h输入88能不能过?同样过了,题目限制了怎么还能过?就是说你的代码没有按题目要求做懂了吧?算了,看来给你说没用……

追问

相似回答