Незадача с указателями на структуру - C (СИ)
Формулировка задачи:
Всем привет, у меня проблема с одним заданием. Значит звучит оно так. Надо создать массив на 10, потом сделать так, что бы каждый элемент массива указывал на мою структуру, и потом в конце после того, как все 10 структур я заполнил, все вывести на экран все 10 структур. Так как я только учусь, и в голове каша, не могу разобраться.
Вот код:
#include <stdio.h> #include <stdlib.h> #include <locale.h> struct automobile { char model[20]; char Year_of_manufacture[20]; char probeg[20]; char price[20]; char color[15]; char country[15]; char mark[15]; }; int structura() { setlocale(LC_ALL, "rus"); int i = 0; for(i=0;i<10;i++){ struct automobile arr[10]; printf("Введите модель: "); scanf("%s",arr[i].model); printf("Введите год выпуска: "); scanf("%s",arr[i].Year_of_manufacture); printf("Введите пробег: "); scanf("%s",arr[i].probeg); printf("Цена: "); scanf("%s",arr[i].price); printf("цвет: "); scanf("%s",arr[i].color); printf("Страна выпуска: "); scanf("%s",arr[i].country); printf("Марка: "); scanf("%s",arr[i].mark); } } int main() { setlocale(LC_ALL, "rus"); struct automobile *arr[10]; int i=0; for(i=0;i<10;i++){ arr[i] = (struct automobile*) malloc(sizeof(struct automobile)); } structura(); for(i=0;i<10;i++){ struct automobile arr[10]; printf("\nМодель: %s, Год выпуска :%s, Пробег : %s, Цена: %s, Цвет : %s, Страна : %s, Марка : %s\n ", arr[i].model, arr[i].Year_of_manufacture, arr[i].probeg, arr[i].price, arr[i].color, arr[i].country, arr[i].mark); } }
Решение задачи: «Незадача с указателями на структуру»
textual
Листинг программы
int structura() { int i = 0; struct automobile arr[10]; for(i=0;i<10;i++){ printf("Введите модель: "); scanf("%s",arr[i].model); printf("Введите год выпуска: "); scanf("%s",arr[i].Year_of_manufacture); printf("Введите пробег: "); scanf("%s",arr[i].probeg); printf("Цена: "); scanf("%s",arr[i].price); printf("цвет: "); scanf("%s",arr[i].color); printf("Страна выпуска: "); scanf("%s",arr[i].country); printf("Марка: "); scanf("%s",arr[i].mark); } }
Объяснение кода листинга программы
- Объявлена функция structura()
- В функции объявлена переменная i типа int и инициализирована значением 0
- Объявлен массив arr типа automobile с размером 10
- В цикле for от 0 до 10 выполняется следующее:
а) Выводится сообщение
Введите модель:
б) Вводится модель автомобиля с помощью функции scanf() и сохраняется в поле model массива arr в) Выводится сообщениеВведите год выпуска:
г) Вводится год выпуска автомобиля с помощью функции scanf() и сохраняется в поле Year_of_manufacture массива arr д) Выводится сообщениеВведите пробег:
е) Вводится пробег автомобиля с помощью функции scanf() и сохраняется в поле probeg массива arr ж) Выводится сообщениеЦена:
з) Вводится цена автомобиля с помощью функции scanf() и сохраняется в поле price массива arr и) Выводится сообщениецвет:
й) Вводится цвет автомобиля с помощью функции scanf() и сохраняется в поле color массива arr к) Выводится сообщениеСтрана выпуска:
л) Вводится страна выпуска автомобиля с помощью функции scanf() и сохраняется в поле country массива arr м) Выводится сообщениеМарка:
н) Вводится марка автомобиля с помощью функции scanf() и сохраняется в поле mark массива arr - Функция structura() возвращает значение 0
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д