我需要減去2個角度有度,分,秒由操作員鍵入。例如:30度50分45秒-10度20分53秒= 20度29分52秒。但是我的代碼返回32767分鐘。減去2度角度,分,秒
這是我的代碼:
#include <stdio.h>
int main(int argc, char **argv)
{
int g1,m1,s1; //timp 1
int g2,m2,s2; //timp 2
int g,m,s; //calcule
printf("Interval1:"); scanf("%d%d%d",&g1,&m1,&s1);
printf("Interval2:"); scanf("%d%d%d",&g2,&m2,&s2);
if(s1<s2) {
s=(s1+60)-s2;
m1=m1-1;
} else if(m1<m2) {
m=(m1-60)-m2;
g1=g1-1;
} else {
s=s1-s2;
m=m1-m2;
}
g=g1-g2;
printf("%d %d %d",g,m,s);
return 0;
}
的回報是:
Interval1:30 50 45
Interval2:10 20 53
20 32767 52
------------------
(program exited with code: 0)
Press return to continue
通過單步執行程序和檢查變量的值......需要你幾分鐘的時間來找到這樣的錯誤。 – Lundin 2014-10-01 13:33:03
你有'm'的問題。也許你應該瀏覽所有的代碼路徑,看看它是如何具有超出聲明時未初始化的數字的值(如果它被賦值......) – HostileFork 2014-10-01 13:34:00