【发布时间】:2020-07-04 10:22:23
【问题描述】:
在 printf("%d",cost[i]) 下面的代码中打印垃圾值为什么? 而当我使用 printf("%d",cost[0]);然后它会正确打印
#include<stdio.h>
#include<stdlib.h>
int main()
{
int chef = 0,n,i=0;
scanf("%d",&n);
int cost[n];
for(i=0;i<n;i++)
{ fflush(stdin);
scanf("%d",&cost[i]);
}
for(i=0;i<n;i++);
{
if(cost[i]-5>=chef)
{
printf(" %d",cost[i]);
chef=chef+cost[i];
chef=chef-(cost[i]-5);
}
return 0;
}
【问题讨论】:
-
您注意到第二行
for(..);后面的分号了吗?你的编译器不会抛出任何警告(关于“gaurds”)吗? -
请注意
fflush(stdin);什么都不做。还要刷新输出并写入换行符 (\n) 怎么样? -
请在发布前正确缩进您的代码。
-
投票关闭错字(@kabanus 解释)
-
你的
for需要一个右大括号 }