[Error] name lookup of 'i' changed for ISO 'for' scoping [-fpermissive - C (СИ)
Формулировка задачи:
[Error] name lookup of 'i' changed for ISO 'for' scoping [-fpermissive] При замене не отображает два столбца ,а те что отображает - некорректно
}
Решение задачи: «[Error] name lookup of 'i' changed for ISO 'for' scoping [-fpermissive»
textual
Листинг программы
#include<stdio.h></stdio.h> #include<limits.h></limits.h> #define STRLEN 10 #define ARRSIZE 10 typedef struct orgt { char n[STRLEN]; char Firm[STRLEN]; char Model[STRLEN]; float price; } orgt_t; void clearbuf() { if (!feof(stdin)) while (getchar() != '\n'); } int main () { orgt_t s[ARRSIZE]; printf("You start table filing!\n"); int i = 0; for(; i < ARRSIZE; i++) { printf("Enter NAME: "); scanf("%9s", s[i].n); clearbuf(); printf("Enter Firm: "); scanf("%9s", s[i].Firm); clearbuf(); printf("Enter Model name: "); scanf("%9s", s[i].Model); clearbuf(); printf("Enter price of item: "); scanf("%f", &s[i].price); clearbuf(); printf("Countine? 1 - Yes 0 - No\n"); int choice; scanf("%d", &choice); if(!choice) break; clearbuf(); } printf("Table:\n"); printf("-------------------------------------\n"); printf("Names Firm Model price\n"); printf("-------------------------------------\n"); for(int j=0; j <= i; j++) { printf("%-10.9s%-10.9s%-10.9s%-10.2f\n", s[j].n, s[j].Firm, s[j].Model, (double)s[j].price); } printf("-------------------------------------\n"); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы:
для работы с вводом/выводом, для определения максимального размера строки. - Определяем константы: STRLEN - максимальная длина строки, ARRSIZE - количество элементов в массиве.
- Создаем структуру orgt_t для хранения данных об организации.
- Создаем функцию clearbuf(), которая очищает буфер ввода.
- В функции main() создаем массив s[ARRSIZE] типа orgt_t для хранения данных.
- Выводим сообщение о начале заполнения таблицы.
- Вводим переменную i для итерации по массиву.
- Используем цикл for для заполнения структуры s[i] данными, которые вводит пользователь.
- После заполнения структуры, выводим сообщение
Table
и таблицу с данными, используя цикл for для перебора элементов массива s[]. - Возвращаем 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д