我似乎无法弄清楚出了什么问题;我得到了一个干净的编译,但在输入第一个数字后,它崩溃了。
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++;
}
任何帮助,甚至是暗示,都会非常感激!!
答案 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()
需要变量的地址。