算时间差的这个if程序为什么跑出来的结果始终是20小时39分钟
本帖最后由 Asymptote_9 于 2019-10-3 22:47 编辑#include <stdio.h>
int main(void)
{
int hour1,minute1;
int hour2,minute2;
printf("请输入两个时间\n");
scanf("%d,%d\n",&hour1,&minute1);
scanf("%d,%d\n",&hour2,&minute2);
int ih = hour2-hour1;
int im = minute2-minute1;
if(im<0)
{
im = 60+im;
ih--;
}
printf("时间差是%d小时,%d分钟\n",ih,im);
}
无论输入什么最后跑出来的都是20小时39分钟,为什么会这样呢? 抱歉我搞不懂你这个是算什么的 把两个scanf中的\n去掉,输入时hour和minute用半角逗号分隔。 #include <stdio.h>
int main(void)
{
int hour1, minute1;
int hour2, minute2;
printf("请输入两个时间\n");
printf("时间1: ");
scanf_s("%d %d", &hour1, &minute1);
printf("时间2: ");
scanf_s("%d %d", &hour2, &minute2);
int ih = hour2 - hour1;
int im = minute2 - minute1;
if (im < 0)
{
im = 60 + im;
ih--;
}
printf("时间差是%d小时,%d分钟\n", ih, im);
}
//改成这个试一下,我测试没有问题,scanf为什么不需要\n是因为你的输入结束需要回车,自动换行,具体可以了解一下键盘输入和系统处理之间的关系
页:
[1]