我的作業要求我顯示用戶輸入和行駛距離的開始時間 (hh:mm:ss)。出租車以 90 公里/小時的速度行駛。所以理想情況下,我希望程式顯示時間(15 分鐘間隔),從開始時間到結束時間,但以 mm:ss 格式顯示。
我的方法是將開始時間和結束時間轉換為秒,并使用 for 回圈。我的時間間隔是 i 900(15 分鐘,以秒為單位)。但是,我的 for 回圈一直在運行并且永無止境。任何人都可以幫助我嗎?
在此處輸入影像描述 <--- 預期輸出
我當前的代碼
int hour, min, sec, minhour, newmin, timesec, endtime; //ignore irrelevant variables
float distance, remdis, remdisb, firstfare, secondfare, fare;
printf("Input your starting travelling time in 24hrs clock (hh mm ss): ");
scanf("%d %d %d", &hour, &min, &sec);
printf("Input your total travelling distance (km): ");
scanf("%f", &distance);
minhour = hour * 60;
newmin = min minhour;
printf("Your starting time is d:d:d or d:d (mm:ss)\n", hour, min, sec, newmin, sec);
printf("Your total travelling distance is %.1fkm or %.0fm\n", distance, distance*1000);
timesec = hour*3600 min*60 sec;
endtime = timesec ((distance/90)*3600);
printf("Starting time | Fare(%.1fkm)", distance);
for (int i=timesec; i<=endtime; i 900)
{
min = i/60;
sec = i - min;
printf("%d:%d | $XX.yy\n", min, sec);
}
uj5u.com熱心網友回復:
我洗掉了這個答案。請接受其他答案。
uj5u.com熱心網友回復:
試試這個:
int hour, min, sec, minhour, newmin, timesec, endtime; //ignore irrelevant variables
float distance, remdis, remdisb, firstfare, secondfare, fare;
printf("Input your starting travelling time in 24hrs clock (hh mm ss): ");
scanf("%d %d %d", &hour, &min, &sec);
printf("Input your total travelling distance (km): ");
scanf("%f", &distance);
minhour = hour * 60;
newmin = min minhour;
printf("Your starting time is d:d:d or d:d (mm:ss)\n", hour, min, sec, newmin, sec);
printf("Your total travelling distance is %.1fkm or %.0fm\n", distance, distance*1000);
endtime = newmin ((distance*60)/90);
printf("Starting time | Fare(%.1fkm)\n", distance);
for (int i=newmin; i<=endtime; i =15)
{
hour = i/60;
min = i % 60;
printf("d:d | $XX.yy\n", hour, min);
}
uj5u.com熱心網友回復:
但是,我的 for 回圈一直在運行并且永無止境
for (int i=timesec; i<=endtime; i 900) ~~~~~~
使用i =900,而不是i 900在這里。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/335228.html
上一篇:代碼列印陣列值的地址而不是值?
下一篇:動態加倍陣列
