1 Востаннє редагувалося koala (26.05.2022 19:19:07)

Тема: Помилка

Код:

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
void f_numbers1(int n){
  int d1 = 0, d2 = 1, d3;
  if(n == 0)
      printf("%d", n);
  else if(n == 1){
    printf("%d %d", n-1, n);
  }else{
    printf("0 1");
    int i;
    for(int i = 2; i <= n; i++){
      printf("%d ", d3 = d1 + d2);
      d1 = d2;
      d2 = d3;
    }
  }
}
int main(int argc, char *argv[]) {
  
  f_numbers1(15);
  return 0;


}

Помилка:
14    13    D:\проекти с++\main.c    [Error] redeclaration of 'i' with no linkage
14    5    D:\проекти с++\main.c    [Error] 'for' loop initial declarations are only allowed in C99 or C11 mode

2 Востаннє редагувалося koala (26.05.2022 19:19:47)

Re: Помилка

А які опції компілятора (і яка версія)? Ніби ж ясно пише - в цьому режимі змінні в циклі проголошувати не можна.

P.S. додав вам теги code, наступного разу самі робіть

3

Re: Помилка

maks15 написав:

Код:

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
void f_numbers1(int n){
  int d1 = 0, d2 = 1, d3;
  if(n == 0)
      printf("%d", n);
  else if(n == 1){
    printf("%d %d", n-1, n);
  }else{
    printf("0 1");
    int i;
    for(int i = 2; i <= n; i++){
      printf("%d ", d3 = d1 + d2);
      d1 = d2;
      d2 = d3;
    }
  }
}
int main(int argc, char *argv[]) {
  
  f_numbers1(15);
  return 0;


}

Помилка:
14    13    D:\проекти с++\main.c    [Error] redeclaration of 'i' with no linkage
14    5    D:\проекти с++\main.c    [Error] 'for' loop initial declarations are only allowed in C99 or C11 mode

перенесіть int і у верх к іншим int
також у for(i = 2; i <= n; i++)
може допомогти  :)

Подякували: maks151