Исправить ошибки в коде - C (СИ) (75818)
Формулировка задачи:
#include <stdio.h> #include <malloc.h> #define DEVICE_NAME_LEN 30 #define CUSTOMER_NAME_LEN 40 #define N 2 // Структура для габаритов struct Dimensions { float Length, Height, Width; }; // Структура для прибора struct MeasureDevice { char deviceName[DEVICE_NAME_LEN]; struct Dimensions deviceDimensions; float devicePrice; }; // Структура для заказчика struct Customer { char customerName[CUSTOMER_NAME_LEN]; char address[50]; }; // Структура для заказа struct Order { char customerName[CUSTOMER_NAME_LEN]; char deviceName[DEVICE_NAME_LEN]; long int amount; }; //основная функция программы int main() { struct MeasureDevice devices[N]; for(int i=0; i<N; i++) { scanf("%s", &devices[i].deviceName); scanf("%f %f %f", &devices[i].deviceDimensions.Length, &devices[i].deviceDimensions.Height, &devices[i].deviceDimensions.Width); scanf("%f", &devices[i].devicePrice); } FILE* outFile; if ( ( outFile = fopen("devices.dat", "wb") ) == NULL ) { printf("Unable to open file\n"); return 1; } fwrite(&devices, sizeof(MeasureDevice), N, outFile); fclose(outFile); return 0; }
Решение задачи: «Исправить ошибки в коде»
textual
Листинг программы
scanf("%s", &devices[i].deviceName);
Объяснение кода листинга программы
- В данном коде используется функция scanf для ввода данных в программу.
- Функция scanf ожидает ввода строки, которую она сохраняет в переменной devices[i].deviceName.
- Переменная i представляет собой индекс в массиве, который увеличивается на 1 после каждого использования scanf.
- scanf требует указателя на переменную, в которую нужно ввести данные. В данном случае используется оператор & для передачи адреса переменной devices[i].deviceName в функцию scanf.
- После использования scanf, программа продолжает выполняться, и введенные данные сохраняются в массиве devices для дальнейшего использования.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д