我需要编写接受三个整数作为输入(小时、分钟、持续时间)的程序。小时采用 24 小时格式。小时和分钟应被视为开始时间,持续时间应以分钟为单位。然后,您应该计算结束时间并以 ##:##
格式正确显示。这就是我得到的,但我的开始时间显示很奇怪。
#include <stdio.h>
int main(int argc, char *argv[])
{
int h=0,m=0,d=0,ht=0,t=0;
printf("Starting Hours: ");
scanf("%d",&h);
printf("Starting Minutes: ");
scanf("%d",&m);
printf("Starting Time is %d,%d ,What is the duration");
scanf("%d",&d);
t=(m+d);
ht=t/60;
h=(h+ht)%24;
m=t%60;
printf("Ending Time: %d:%d",h,m);
getchar();
return 0;
}
我的开始时间显示如下:当我输入 12 表示小时,输入 52 表示分钟时,我的开始时间显示为
-2114693200:1.
不知道为什么会发生
最佳答案
printf() 中缺少参数导致未定义的行为。
printf("Starting Time is %d,%d ,What is the duration");
应该是
printf("Starting Time is %d,%d ,What is the duration",h,m);
您也不需要以 24 为模,除非您想将小时转换为天...如果您愿意,您还需要存储和打印天数。
h=(h+ht)%24;
关于c - 输入用户的小时和分钟,并添加持续时间以显示更新的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35628222/