错误:'for'循环初始声明仅允许在c99模式下使用

时间:2017-05-27 20:04:41

标签: c gcc compiler-errors c89

我遇到了这个问题,我只能使用gcc -std = c99进行编译,但是,我需要使用c89 aka gcc -Wall进行编译。这是我使用'for'循环的代码的一部分。请看看你是否可以提前帮助我。

#include<stdio.h>
int main()
{
    int arr[100],i=0,ch;
    int n = 1, sum = 0;
    printf("Check out our selection! \n");
    printf("Airhead - 25 cents\n");
    printf("Fun Dip - 40 cents\n");
    printf("Gummi Bears - 20 cents\n");
    while (n != 0)
    {
        printf("Insert Coins: ");
        scanf("%d",&n);
        arr[i++] = n;
    }

    for(int j=0;j<i;j++)
    {   sum = sum + arr[j];
    }
......

1 个答案:

答案 0 :(得分:3)

这是错误的:

for (int j = 0; j < i; j++) {
    sum = sum + arr[j];
}

您必须在功能开始时初始化j

 int main() {
    int j;
    ...
    for (j = 0; j < i; j++) {
        sum = sum + arr[j];
    }
}