0

我正在尝试使用 C 中的一个简单等式创建一个调度程序。该程序的目标是询问用户他们在一周内花在学习/工作上的时间(如果超过 40 小时,请告诉他们他们已经完成为周)。

由于这是一项基本任务,我希望它相当容易,因为我过去用 python 3.3 做过类似的事情,尽管经过大量试验,我似乎无法让我的程序正常运行。

  • 我的程序适用于整数,但不适用于小数。我如何整合浮动?将 d% 更改为 f%?

已解决* 主要问题是无论用户输入什么数字,总是显示一个很大的负数作为最终答案。我试图利用我对 python 的了解在 C 中解决这个问题,但到目前为止,我无法准确理解我哪里出错了。*

任何建设性的批评和/或建议都会很棒。

我添加了评论以显示我编码背后的过程

#include <stdio.h>

int main() {
    int a;
    printf("How many hours in a week are you in class?");
    scanf("%d", &a);

    int b;
    printf("How many hours a week are you studying?");
    scanf("%d", &b);

    int c;
    printf("How many hours have you already spent in class and studying this week?");
    scanf("%d", &c);

    int x = (a+b+c);

    if(x >= 40){
        printf("You have spent all the time required for this week.\n");
    }
    else{
        printf ("You have %d hours more to work and study for this week.\n", x);
    }

    //return 0 to end
    return 0;
}

提前致谢!

编辑 *

似乎“大负数”错误仅发生在当前的 CodeBlocks 会话中。

我刚刚重新启动计算机并重新加载程序,它似乎工作正常。但是,我知道我的代码并不完美,我仍然会感谢任何比我更有经验的人的意见。

谢谢您的帮助。

4

1 回答 1

2

scanf(%d, *int)正在获取新行字符 在调用 scanf 之前尝试 fgets 而不是 scanf 或 fflush(STDIN) 清除缓冲区

于 2013-02-22T06:03:08.820 回答