Незадача с указателями на структуру - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д