[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;
}

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

  1. Включаем необходимые заголовочные файлы: для работы с вводом/выводом, для определения максимального размера строки.
  2. Определяем константы: STRLEN - максимальная длина строки, ARRSIZE - количество элементов в массиве.
  3. Создаем структуру orgt_t для хранения данных об организации.
  4. Создаем функцию clearbuf(), которая очищает буфер ввода.
  5. В функции main() создаем массив s[ARRSIZE] типа orgt_t для хранения данных.
  6. Выводим сообщение о начале заполнения таблицы.
  7. Вводим переменную i для итерации по массиву.
  8. Используем цикл for для заполнения структуры s[i] данными, которые вводит пользователь.
  9. После заполнения структуры, выводим сообщение Table и таблицу с данными, используя цикл for для перебора элементов массива s[].
  10. Возвращаем 0, чтобы указать, что программа успешно завершилась.

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


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

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

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