在C中有一个简单的程序有问题,有什么建议吗?

时间:2013-02-22 05:50:37

标签: c int

我正在尝试使用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;
}

提前致谢!

编辑*

似乎是一个很大的负数&#39;错误发生在当前的CodeBlocks会话中。

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

scanf(%d, *int)正在获得新的线路字符 在调用scanf

之前尝试fgets而不是scanf或fflush(STDIN)清除缓冲区