开始和结束时间是基于24小时时钟格式的。任务是我们将输入开始和结束时间,然后我们将计算呼叫的长度,并将结果转换为分钟。
示例输出:开始时间:1810结束时间:2000通话时长:一百一十分钟
下面是我所做的尝试。首先,我试着减去开始和结束时间,然后自动地把答案变成正的。现在,如果总的结果(resultMain)大于120,则会将结果乘以否则如果结果大于60且小于120,那么它只会得到负40,而不是乘以(0. 60)。我的问题是我的结果不一致,有时答案是正确的,但有时是错误的。
#include <stdio.h>
#include <math.h>
#include <string.h>
int main()
{
int startTime, endTime, result1, result2;
double totalTime1, totalTime2, resultMain;
printf("\nPLDT Telephone Call Charge\n");
printf("\nStart time\t: ");
scanf("%d", &startTime);
printf("End time\t: ");
scanf("%d", &endTime);
totalTime1 = startTime - endTime;
resultMain = fabs(totalTime1);
if(resultMain >= 120){
totalTime2 = resultMain * .60;
result1 = ceil(totalTime2);
result2 = fabs(result1);
printf("Length of call\t: %d minutes\n", result2);
}else if(resultMain >= 60 && resultMain < 120){
totalTime2 = resultMain - 40;
result1 = ceil(totalTime2);
result2 = fabs(result1);
printf("Length of call\t: %d minutes\n", result2);
}else{
totalTime2 = resultMain;
result1 = ceil(totalTime2);
result2 = fabs(result1);
printf("Length of call\t: %d minutes\n", result2);
}
return 0;
}
正确答案示例:开始时间:0123结束时间:0224通话时长:六十一分钟
错误答案示例:开始时间:0852结束时间:0906通话时长:五十四分钟
错误答案示例:开始时间:0805结束时间:1210通话时长:二百四十三分钟
2条答案
按热度按时间iih3973s1#
不需要任何浮点数
在减去之前,将时间分成小时和分钟
差值是结束减去开始
当差值为负时,增加一天的时间
例如:开始时间刚好在午夜之前,结束时间在午夜之后。
仅需打印1个病例
6l7fqoea2#
您可以使用此算法来计算两个时间之间的差异(以分钟为单位):
请参阅:Algorithm needed to calculate difference between two times
以下代码将为您实现它: