Ошибки '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
Объяснение кода листинга программы
- Создается новый файл с расширением .c
- В первой строке указывается препроцессорный директивный комментарий - приветствие компилятору
- Далее идет директива включения заголовочного файла stdio.h, который содержит определения функций ввода-вывода
- Объявляется функция main() - точка входа в программу
- Внутри функции main() создаются три переменные типа int: a, b, c; с помощью которых будет выполняться цикл
- Инициализируется переменная типа int d с помощью присваивания ей значения 0
- Задается условие цикла for с использованием переменных a, b, c и d
- В теле цикла for происходит вывод значения переменной d на экран с помощью функции printf()
- После завершения цикла for программа завершается с помощью оператора return
- Закрывается объявление функции main()
- Закрывается открытый ранее файл .c
- В командной строке указывается команда для компиляции файла .c в исполняемый файл .exe
- Указываются параметры компиляции - использование стандарта C99 и указание имени выходного файла
- Компилятор проверяет синтаксис кода и генерирует исполняемый файл .exe
- Запускается исполняемый файл .exe
- На экране выводится значение переменной d, которое было последним выведено в теле цикла for
- Программа завершается и закрывается исполняемый файл .exe
- Пользователь может выполнить команду для выхода из операционной системы
- Операционная система завершает работу и выключается
- Код программы полностью выполнен
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д