Вопрос задан 26.09.2023 в 01:44. Предмет Информатика. Спрашивает Чернова Александра.

Помогите найти синтаксические ошибки в коде: #include #include #include struct automob { char

marka[15]; int year, price; }; struct automob1 { char marka1[15]; int year1, price1; }; int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); FILE* file, * file1; struct automob a[5]; file = fopen("D:\\Програми\\S1.txt", "w"); for (int i = 0; i < 5; i++) { printf("Введіть марку машини, рік випуску та ціну\n "); scanf("%s %d %d", a[i].marka, &a[i].year, &a[i].price); fprintf(file, "%s %d %d \n", a[i].marka, a[i].year, a[i].price); } fclose(file); file = fopen("D:\\Програми\\S1.txt", "r"); printf("Фірма пропонує такі машини: \n"); for (int i = 0; i < 5; i++) { fscanf(file, "%s %d %d", a1[i].marka1, &a1[i].year1, &a1[i].price1); printf("%s %d %d \n", a[i].marka, a[i].year, a[i].price); if (a1[i].price1 < 10000) fprintf(file1, " Марка %s рік %d ціна %d \n", a1[i].marka1, a1[i].year1, a1[i].price1); } fclose(file1); }
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Ященко Владимир.

Пояснення:

Синтаксических не вижу, кроме того что директивы препроцессора не указаны, если работает плохо можешь подумать над логикой, если вообще не работает проверь пути к файлам. В директивах будет достаточно <iostream> и <windows.h> если у тебя в коде нет.

UPD Возможно проблемы из-за русского названия папок.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Приведенный вами код содержит несколько синтаксических ошибок и несоответствий. Вот исправленный код с комментариями о внесенных изменениях:

c
#include <stdio.h> #include <windows.h> // Добавлен заголовочный файл для использования функций SetConsoleCP и SetConsoleOutputCP // Определение структур struct automob { char marka[15]; int year, price; }; struct automob1 { char marka1[15]; int year1, price1; }; int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); FILE* file, * file1; struct automob a[5]; struct automob1 a1[5]; // Добавлено определение массива a1 file = fopen("D:\\Програми\\S1.txt", "w"); if (file == NULL) { printf("Не удалось открыть файл для записи.\n"); return 1; } for (int i = 0; i < 5; i++) { printf("Введіть марку машини, рік випуску та ціну\n "); scanf("%s %d %d", a[i].marka, &a[i].year, &a[i].price); fprintf(file, "%s %d %d \n", a[i].marka, a[i].year, a[i].price); } fclose(file); file = fopen("D:\\Програми\\S1.txt", "r"); if (file == NULL) { printf("Не удалось открыть файл для чтения.\n"); return 1; } file1 = fopen("D:\\Програми\\S2.txt", "w"); // Добавлено открытие файла для записи if (file1 == NULL) { printf("Не удалось открыть файл для записи.\n"); return 1; } printf("Фірма пропонує такі машини: \n"); for (int i = 0; i < 5; i++) { fscanf(file, "%s %d %d", a1[i].marka1, &a1[i].year1, &a1[i].price1); printf("%s %d %d \n", a1[i].marka1, a1[i].year1, a1[i].price1); if (a1[i].price1 < 10000) fprintf(file1, " Марка %s рік %d ціна %d \n", a1[i].marka1, a1[i].year1, a1[i].price1); } fclose(file); fclose(file1); // Закрытие файла file1 return 0; }

Изменения, внесенные в код:

  1. Добавлены заголовочные файлы <stdio.h> и <windows.h> для правильного использования функций.
  2. Добавлено определение массива a1 типа struct automob1, который будет использоваться для чтения данных из файла.
  3. Добавлена проверка на успешное открытие файлов для записи и чтения, чтобы обработать возможные ошибки.
  4. Добавлено открытие файла file1 для записи и его закрытие после использования.

После внесенных изменений код должен корректно выполняться.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос