Програма с использованием структуры - C (СИ)
Формулировка задачи:
Програма с использованием структуры.
Сведения о автомобиль состоят из его марки, номера, цвета, фамилии владельца: а) подсчитать количество автомобилей заданной марки; б) подсчитать количества автомобилей каждой марки;
Решение задачи: «Програма с использованием структуры»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <Windows.h>
struct Auto {
char Model[16];
char Number[8];
char Color[10];
char Name[16];
};
int main() {
int i, j, counter = 0;
char EnteredModel[16] = { '\0' };
struct Auto MyAuto[5] = { { "Audi", "x007x", "blue", "Alexander" },
{ "Ford", "x777x", "red", "Andrey" },
{ "Porsche","a000b", "white", "Oleg" },
{ "Audi", "x007x", "blue", "Sergey" },
{ "Audi", "f666f", "black", "Daniel" } };
int modelCounted[5] = { 0 };
printf("Enter the number of the interested model: ");
scanf("%s", &EnteredModel);
for (i = 0; i < 5; i++) {
if (i == 0) {
printf("#####################################################\n");
printf("#Model #Number #Color #Name #\n");
printf("#####################################################\n");
}
if (strcmp(MyAuto[i].Model, EnteredModel) == 0) {
printf("%-17s%-9s%-11s%-17s\n", MyAuto[i].Model, MyAuto[i].Number, MyAuto[i].Color, MyAuto[i].Name);
}
}
printf("\n");
for (j = 0; j < 5; j++) {
if (!modelCounted[j])
{
for (i = 0; i < 5; i++) {
if (strcmp(MyAuto[i].Model, MyAuto[j].Model) == 0) {
counter++;
modelCounted[i] = 1; // Mark car as counted
}
}
printf("%s = %d\n", MyAuto[j].Model, counter);
counter = 0;
}
}
printf("\n");
system("pause");
return 0;
}
Объяснение кода листинга программы
- Программа считывает количество интересующих моделей автомобилей и сохраняет его в переменной EnteredModel.
- Затем программа выводит информацию о каждой модели автомобиля в массиве структур Auto с помощью цикла for.
- Если модель автомобиля совпадает с введенной моделью, программа выводит информацию об этой модели автомобиля.
- После вывода информации о каждой модели автомобиля программа выводит количество каждой модели автомобиля с помощью двух вложенных циклов for и оператора if.
- В конце программы автомобиль запрашивается нажатием любой клавиши и программа завершается.