'for' loop initial declarations are only allowed in C99 or C11 mode
조회수 882회
//#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));
}
그리고 아무리 생각해도 if(looper % 5)의 의미를 모르겠네요 ㅠㅠㅠ 제발 도와주세요 확장자 cpp 로 했을 때는 작동이 되는데 이상하게 나옵니다
c로 하니깐 looper가
D:\시스템\Desktop\2.c [Error] 'for' loop initial declarations are only allowed in C99 or C11 mode
이렇게 오류가 나오는데 도저히 모르겠네요 ㅠㅠ
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
C는 잘 모르긴 하지만..
C언어에서 bool 타입은 1이 true, 0이 false입니다.
그런데 사실 0이 아니면 다 true로 간주해요.
따라서 looper % 5는 looper가 5의 배수이면 거짓 아니면 참이 됩니다
for문에 대한 에러 메시지는 for문 안에서 looper를 선언해서 그런 것 같으니
looper 선언을 밖에서 해 주시고 for문 안에서는 int를 빼고 실행해 보세요
댓글 입력