查找经过的时间
Finding the elapsed time
这就是我目前所拥有的。我正在学习结构,我必须使用结构来完成作业。我不明白我的代码有什么问题。当我调试时,我得到 0 小时、分钟、秒。请看我的代码。
#include <stdio.h>
struct calculate
{
int hours;
int minutes;
int seconds;
};
struct calculate N1;
struct calculate N2;
int resulthr, resultmin, resultsec;
int substract(struct calculate N1, struct calculate N2)
{
resultsec = N2.seconds - N1.seconds;
if (resultsec < 0)
{
resultsec = 60 + resultsec;
--N2.minutes;
}
resultmin = N2.minutes - N1.minutes;
if (resultmin < 0)
{
resultsec = 60 + resultmin;
--N2.hours;
}
resulthr = N2.hours - N1.hours;
if (resulthr < 0)
{
resulthr = 24 + resultsec;
}
return 0;
}
int main(void)
{
printf("Enter two times.(hh:mm:ss) ");
scanf("%i:%i:%i", &N1.hours, &N1.minutes, &N1.seconds);
scanf("%i:%i:%i", &N2.hours, &N2.minutes, &N2.seconds);
int substract(calculate N1, calculate N2);
printf("The elasped time is %i:%i:%i.\n", resulthr, resultmin, resultsec);
return 0;
}
main
函数中的 int substract(calculate N1, calculate N2);
行并没有调用之前定义的 subtract
方法,但它实际上声明了另一个同名函数。
要实际调用该方法,请写入:
int res = subtract(N1, N2);
之后 res
应为 0,(全局)变量 resulthr,resultmin,resultsec
应具有所需的值。
顺便说一句:请阅读有关全局和局部变量以及传递参数的信息。
在main函数中调用subtract(N1, N2);而不是int subtract(calculate N1, calculate N2);。
你是在声明它,而不是调用它。
这就是我目前所拥有的。我正在学习结构,我必须使用结构来完成作业。我不明白我的代码有什么问题。当我调试时,我得到 0 小时、分钟、秒。请看我的代码。
#include <stdio.h>
struct calculate
{
int hours;
int minutes;
int seconds;
};
struct calculate N1;
struct calculate N2;
int resulthr, resultmin, resultsec;
int substract(struct calculate N1, struct calculate N2)
{
resultsec = N2.seconds - N1.seconds;
if (resultsec < 0)
{
resultsec = 60 + resultsec;
--N2.minutes;
}
resultmin = N2.minutes - N1.minutes;
if (resultmin < 0)
{
resultsec = 60 + resultmin;
--N2.hours;
}
resulthr = N2.hours - N1.hours;
if (resulthr < 0)
{
resulthr = 24 + resultsec;
}
return 0;
}
int main(void)
{
printf("Enter two times.(hh:mm:ss) ");
scanf("%i:%i:%i", &N1.hours, &N1.minutes, &N1.seconds);
scanf("%i:%i:%i", &N2.hours, &N2.minutes, &N2.seconds);
int substract(calculate N1, calculate N2);
printf("The elasped time is %i:%i:%i.\n", resulthr, resultmin, resultsec);
return 0;
}
main
函数中的 int substract(calculate N1, calculate N2);
行并没有调用之前定义的 subtract
方法,但它实际上声明了另一个同名函数。
要实际调用该方法,请写入:
int res = subtract(N1, N2);
之后 res
应为 0,(全局)变量 resulthr,resultmin,resultsec
应具有所需的值。
顺便说一句:请阅读有关全局和局部变量以及传递参数的信息。
在main函数中调用subtract(N1, N2);而不是int subtract(calculate N1, calculate N2);。
你是在声明它,而不是调用它。