Незадача с указателями на структуру - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем привет, у меня проблема с одним заданием. Значит звучит оно так. Надо создать массив на 10, потом сделать так, что бы каждый элемент массива указывал на мою структуру, и потом в конце после того, как все 10 структур я заполнил, все вывести на экран все 10 структур. Так как я только учусь, и в голове каша, не могу разобраться. Вот код:
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4.  
  5. struct automobile {
  6. char model[20];
  7. char Year_of_manufacture[20];
  8. char probeg[20];
  9. char price[20];
  10. char color[15];
  11. char country[15];
  12. char mark[15];
  13. };
  14. int structura() {
  15. setlocale(LC_ALL, "rus");
  16. int i = 0;
  17. for(i=0;i<10;i++){
  18. struct automobile arr[10];
  19. printf("Введите модель: ");
  20. scanf("%s",arr[i].model);
  21. printf("Введите год выпуска: ");
  22. scanf("%s",arr[i].Year_of_manufacture);
  23. printf("Введите пробег: ");
  24. scanf("%s",arr[i].probeg);
  25. printf("Цена: ");
  26. scanf("%s",arr[i].price);
  27. printf("цвет: ");
  28. scanf("%s",arr[i].color);
  29. printf("Страна выпуска: ");
  30. scanf("%s",arr[i].country);
  31. printf("Марка: ");
  32. scanf("%s",arr[i].mark);
  33. }
  34. }
  35.  
  36. int main() {
  37. setlocale(LC_ALL, "rus");
  38. struct automobile *arr[10];
  39. int i=0;
  40. for(i=0;i<10;i++){
  41. arr[i] = (struct automobile*) malloc(sizeof(struct automobile));
  42. }
  43. structura();
  44. for(i=0;i<10;i++){
  45. struct automobile arr[10];
  46. printf("\nМодель: %s, Год выпуска :%s, Пробег : %s, Цена: %s, Цвет : %s, Страна : %s, Марка : %s\n ",
  47. arr[i].model, arr[i].Year_of_manufacture, arr[i].probeg, arr[i].price, arr[i].color, arr[i].country, arr[i].mark);
  48. }
  49. }

Решение задачи: «Незадача с указателями на структуру»

textual
Листинг программы
  1. int structura() {
  2.     int i = 0;
  3.      struct automobile arr[10];
  4.     for(i=0;i<10;i++){
  5.   printf("Введите модель: ");
  6.   scanf("%s",arr[i].model);
  7.   printf("Введите год выпуска: ");
  8.   scanf("%s",arr[i].Year_of_manufacture);
  9.   printf("Введите пробег: ");
  10.   scanf("%s",arr[i].probeg);
  11.   printf("Цена: ");
  12.   scanf("%s",arr[i].price);
  13.   printf("цвет: ");
  14.   scanf("%s",arr[i].color);
  15. printf("Страна выпуска: ");
  16.   scanf("%s",arr[i].country);
  17.   printf("Марка: ");
  18.   scanf("%s",arr[i].mark);
  19.     }
  20. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы