C编程,自上而下,出发时间

时间:2016-10-14 14:41:33

标签: c

我目前正在课堂上学习C语言中的自上而下的编程,而且我不知道怎么会真正掌握它。

我一直在尝试通过这个编程练习来学习它,你必须根据他们的到达时间(以km / hr的速度和以km为单位的距离)来计算某人应该离开的时间,但我做了一些非常非常错误的事情因为输出大约是四百万 - 总是。

我正在使用C语言中的问题解决和程序设计,相关章节是3.5。谁能告诉我我做错了什么?还有人可以解释形式参数如何以ELI5方式工作吗?

TimeSpan TodayTime = DateTime.Now.TimeOfDay;

2 个答案:

答案 0 :(得分:0)

您的return (diffhrs, diffmin)声明没有做任何特别有用的事情 - 它只会丢弃diffhrs并返回diffmin(请阅读the comma operator in C)。

变化:

return (diffhrs, diffmin);

为:

return diffhrs * 100 + diffmin;

答案 1 :(得分:0)

欢迎编程:)

你忘了打电话给你的功能。因此,您正在显示未初始化的变量。这可能会显示一些垃圾值,甚至可能导致崩溃。请参阅this question

在声明时初始化变量是一种很好的做法。像:

int diffhrs = 0;
int diffmin = 0;

尝试调用您的函数。他们可能需要一些调整。试试看。这是学习的方式。

此外,您似乎试图通过引用传递参数。你应该做一些小改动。

定义这样的函数:

int find_dprt_time(int *diffhrs, int *diffmin, int arvl_time, int trvl_time)
{
    *diffhrs = arvl_time / 100 - trvl_time / 100;
    *diffmin = arvl_time % 100 - trvl_time % 100;
}

在显示出发时间之前调用该功能,如下所示:

find_dprt_time(&diffhrs, &diffmin, time, travel_time);

您可以通过引用here了解有关函数和传递参数的更多信息。