我需要减去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