C编程不断崩溃

时间:2014-04-02 16:42:21

标签: c

我似乎无法弄清楚出了什么问题;我得到了一个干净的编译,但在输入第一个数字后,它崩溃了。

    for (day = 1; day < 15; day++)
{
    do
        {
            printf("What is the temperature high for day #%d? ", day++);
            scanf("%d", temperature[day]);

            sum += temperature[day];

                if (temperature[day]<0 || temperature[day]>100)
                {
                    printf("\nOut of range, please enter a value from 0 to 100\n\n");
                }


            if (temperature[day] < 60)
                {
                    cold++;
                }

            else if (temperature[day] >= 60)
                {
                    warm++;
                }

            else if (temperature[day] > 69 || temperature[day] < 80)
                {
                    printf("Wow! It's in the 70's today!");
                    warm++;
                }

任何帮助,甚至是暗示,都会非常感激!!

4 个答案:

答案 0 :(得分:2)

您尚未显示temerature的定义,但根据您的使用情况,

scanf("%d", temperature[day]);

几乎可以肯定是

scanf("%d", &temperature[day]);

答案 1 :(得分:0)

当您想要从用户输入时,您必须提供&登录scanf()函数,如下所示,

scanf("%d", &temperature[day]);

您在scanf()函数中缺少&个签名。添加它,你的问题就会解决。

答案 2 :(得分:0)

int和int *之间不匹配。

scanf("%d", &temperature[day]);

而不是

scanf("%d", temperature[day]);

答案 3 :(得分:0)

    for (day = 1; day < 15; day++)
{
    do

为什么你同时拥有for()do()(大概是do-while())?

        {
            printf("What is the temperature high for day #%d? ", day++);

这里不要递增day,它已作为for循环的一部分递增,否则循环体的其余部分对day的解释是错误的!

    scanf("%d", temperature[day]);

可能是scanf("%d", & temperature[day]);,因为scanf()需要变量的地址。