Ошибки 'for' loop initial declarations are only allowed in C99 mode - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Возникшие проблемы с кодом:
main.c||In function 'print':| main.c|5|error: 'for' loop initial declarations are only allowed in C99 mode| main.c|5|note: use option -std=c99 or -std=gnu99 to compile your code| main.c|7|error: 'for' loop initial declarations are only allowed in C99 mode| main.c|17|error: redefinition of 'i'| main.c|5|note: previous definition of 'i' was here| main.c|17|error: 'for' loop initial declarations are only allowed in C99 mode| main.c||In function 'clear':| main.c|23|error: 'for' loop initial declarations are only allowed in C99 mode| main.c||In function 'main':| main.c|42|error: 'for' loop initial declarations are only allowed in C99 mode| ||=== Build finished: 6 errors, 0 warnings (0 minutes, 0 seconds) ===|
Код:
#include <stdio.h>
#include <string.h>
void print(char word[], int length)
{
for(int i = 0; i < length; i++)
{
for(int k = length-1; k > i; k--)
{
if(word[k-1] > word[k])
{
char temp = word[k];
word[k] = word[k-1];
word[k-1] = temp;
}
}
}
for(int i = 0; i < length; i++)
printf("%c", word[i]);
}
void clear(char word[])
{
int size = strlen(word);
for(int i = 0; i <= size; i++)
{
word[i] = '\0';
}
}
int main ()
{
char text [1024], word[20];
puts("Введите текст");
scanf("%s", text);
int end = strlen(text);
int end_index = 0;
int index = 0;
int length = 1;
do
{
clear(word);
int k = 0;
end_index = index + length;
for(int i = index; i < end_index; i++)
{
word[k] = text[i];
k++;
}
index = end_index;
print(word, length);
printf("\n");
length++;
} while((end_index + length) <= end);
return 0;
}

Решение задачи: «Ошибки 'for' loop initial declarations are only allowed in C99 mode»

textual
Листинг программы
gcc hello.c -std=c99 -o hello.exe

Объяснение кода листинга программы

  1. Создается новый файл с расширением .c
  2. В первой строке указывается препроцессорный директивный комментарий - приветствие компилятору
  3. Далее идет директива включения заголовочного файла stdio.h, который содержит определения функций ввода-вывода
  4. Объявляется функция main() - точка входа в программу
  5. Внутри функции main() создаются три переменные типа int: a, b, c; с помощью которых будет выполняться цикл
  6. Инициализируется переменная типа int d с помощью присваивания ей значения 0
  7. Задается условие цикла for с использованием переменных a, b, c и d
  8. В теле цикла for происходит вывод значения переменной d на экран с помощью функции printf()
  9. После завершения цикла for программа завершается с помощью оператора return
  10. Закрывается объявление функции main()
  11. Закрывается открытый ранее файл .c
  12. В командной строке указывается команда для компиляции файла .c в исполняемый файл .exe
  13. Указываются параметры компиляции - использование стандарта C99 и указание имени выходного файла
  14. Компилятор проверяет синтаксис кода и генерирует исполняемый файл .exe
  15. Запускается исполняемый файл .exe
  16. На экране выводится значение переменной d, которое было последним выведено в теле цикла for
  17. Программа завершается и закрывается исполняемый файл .exe
  18. Пользователь может выполнить команду для выхода из операционной системы
  19. Операционная система завершает работу и выключается
  20. Код программы полностью выполнен

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы