求学霸帮忙看看哪错了 求时间差
#include
#include
int main()
{
int hour1,minute1;
int hour2,minute2;
int zminute1=hour1*60+minute1;
int zminute2=hour2*60+minute2;
int xiangcha=zminute2-zminute1;
int hour=xiangcha/60;
int minute=xiangcha%60;
printf("请输入第一个时间\n");
scanf ("%d %d",&hour1,&minute1);
printf("请输入第二个时间\n");
scanf ("%d %d",&hour2,&minute2);
printf("%d:%d",hour,minute);
return 0;
}
1.首先,是不是第二行的:
#include <stdlib.h>
是不是先可以去掉?因为在整个程序中基本没用。
2.其次,
“printf("请输入第一个时间\n");
scanf ("%d %d",&hour1,&minute1);
printf("请输入第二个时间\n");
scanf ("%d %d",&hour2,&minute2);”
可以直接放在这黑框的首位。
如果说为什么只能说c是面向过程的语言,你只有先有输入才有下面的运算。
以上就是明显的不足之处
更改后的代码:
#include <stdio.h>
int main(void)
{
int hour1, minute1;
int hour2, minute2;
printf("请输入第一个时间\n");
scanf("%d %d", &hour1, &minute1);
printf("请输入第二个时间\n");
scanf("%d %d", &hour2, &minute2);
int zminute1 = hour1 * 60 + minute1;
int zminute2 = hour2 * 60 + minute2;
int xiangcha = zminute2 - zminute1;
int hour = xiangcha / 60;
int minute = xiangcha % 60;
printf("%d:%d", hour, minute);
return 0;
}
其中由于当别人并不知道你需要第二次输出要比第一次大;
所以你可以把:
printf("请输入第一个时间\n");
改为:
printf("请输入第一个时间(注意在两数值之间加空格;且注意第二次输入要比第一次输入大。):\n")
其实还有可以改进的地方,比如加个if判断是否第一次小于第二次等等,但以上足够使用了。
先输入在计算
int zminute1=hour1*60+minute1;
int zminute2=hour2*60+minute2;
int xiangcha=zminute2-zminute1;
int hour=xiangcha/60;
int minute=xiangcha%60;
把这些移动到输入第二个时间下面,就ok了
有用记得采纳呐!