我目前正在课堂上学习C语言中的自上而下的编程,而且我不知道怎么会真正掌握它。
我一直在尝试通过这个编程练习来学习它,你必须根据他们的到达时间(以km / hr的速度和以km为单位的距离)来计算某人应该离开的时间,但我做了一些非常非常错误的事情因为输出大约是四百万 - 总是。
我正在使用C语言中的问题解决和程序设计,相关章节是3.5。谁能告诉我我做错了什么?还有人可以解释形式参数如何以ELI5方式工作吗?
TimeSpan TodayTime = DateTime.Now.TimeOfDay;
答案 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了解有关函数和传递参数的更多信息。