Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 查找经过的时间_C++_C_Visual Studio 2013_Elapsed - Fatal编程技术网

C++ 查找经过的时间

C++ 查找经过的时间,c++,c,visual-studio-2013,elapsed,C++,C,Visual Studio 2013,Elapsed,这就是我目前所拥有的。我正在学习结构,我必须使用结构来完成作业。我不明白我的代码有什么问题。当我调试时,每小时、每分钟、每秒钟都会得到0。请看我的密码 #include <stdio.h> struct calculate { int hours; int minutes; int seconds; }; struct calculate N1; struct calculate N2; int resulthr, resultmin, resultsec

这就是我目前所拥有的。我正在学习结构,我必须使用结构来完成作业。我不明白我的代码有什么问题。当我调试时,每小时、每分钟、每秒钟都会得到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;
}
#包括
结构计算
{
整小时;
整数分钟;
整数秒;
};
结构计算N1;
结构计算N2;
int resulthr、resultmin、resultsec;
int减法(结构计算N1,结构计算N2)
{
结果C=N2.s-N1.s;
if(resultsec<0)
{
resultsec=60+resultsec;
--N2.5分钟;
}
结果分钟=N2.min-N1.min;
如果(结果分钟<0)
{
resultsec=60+resultmin;
--N2.5小时;
}
结果r=N2.h-N1.h;
如果(结果r<0)
{
resulthr=24+resultsec;
}
返回0;
}
内部主(空)
{
printf(“输入两次(hh:mm:ss)”);
scanf(“%i:%i:%i”、&N1.hours、&N1.minutes、&N1.seconds);
扫描(“%i:%i:%i”、&N2.hours、&N2.minutes、&N2.seconds);
int减法(计算N1,计算N2);
printf(“弹性时间为%i:%i:%i.\n”,resulthr,resultmin,resultsec);
返回0;
}

int减法(计算N1,计算N2)main
函数中,code>不调用先前定义的
subtract
方法,但它实际上声明了另一个同名函数。 要实际调用方法write,请执行以下操作:

   int res = subtract(N1, N2);
之后,
res
应为0,且(全局)变量
resulthr、resultmin、resultsec
应具有所需的值


顺便说一句:请阅读有关全局和局部变量以及传递参数的内容。

int减法(计算N1,计算N2)main
函数中,code>不调用先前定义的
subtract
方法,但它实际上声明了另一个同名函数。 要实际调用方法write,请执行以下操作:

   int res = subtract(N1, N2);
之后,
res
应为0,且(全局)变量
resulthr、resultmin、resultsec
应具有所需的值

顺便说一句:请阅读有关全局和局部变量以及传递参数的信息。

调用减法(N1,N2)而不是整数减法(计算N1,计算N2)

您是在声明它,而不是调用它。

调用减法(N1,N2)而不是整数减法(计算N1,计算N2)


您正在声明它,而不是调用它。

只需使用调试器。只需使用调试器。谢谢。另外,我在int减法函数上犯了一个错误。。。resultsec=60+resultmin应该是resultmin=60+resultminThanks。另外,我在int减法函数上犯了一个错误。。。resultsec=60+resultmin应该是resultmin=60+resultmin