Незадача с указателями на структуру - 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);
    }
}

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

  1. Объявлена функция structura()
  2. В функции объявлена переменная i типа int и инициализирована значением 0
  3. Объявлен массив arr типа automobile с размером 10
  4. В цикле 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
  5. Функция structura() возвращает значение 0

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


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

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

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