'for' loop initial declarations are only allowed in C99 or C11 mode

Asked 2 years ago, Updated 2 years ago, 73 views

//#include <stdio.h>
long fib(long num);

int main(void){
       int seriesSize;

    scanf ("%d", &seriesSize);
    if (seriesSize <2)
        seriesSize =2;
    printf("First %d Fibonacci numbers: \n", seriesSize);
    for (int looper = 0; looper < seriesSize; looper++)
        {
        if(looper % 5)
            printf(", %81d", fib(looper));
        else
            printf("\n%81d", fib(looper));
        }
    printf("\n");
    return 0;
}
long fib(long num)
{
    if (num==0 || num==1)
        return num;
    return (fib (num-1) + fib (num-2));
}

And no matter how much I think about it, I don't know the meaning of if (looper % 5) means Please help me It works when I use the extension cpp, but it comes out weird With c, the looper is
D:\System\Desktop\2.c [Error] 'for' loop initials are only allowed in C99 or C11 mode There's an error, but I don't know ㅠ<

dev-c++ c

2022-09-20 20:51

1 Answers

I don't know about C, but...

In C language, the bowl type is 1 is true and 0 is false.

In fact, if it's not 0, it's considered true.

So looper %5 is false or true if looper is a multiple of 5

The error message for the for statement seems to be because you declared a looper in the for statement.

Please declare the looper outside, and in the for statement, remove the int and execute it


2022-09-20 20:51

If you have any answers or tips


© 2024 OneMinuteCode. All rights reserved.