Вариант А3
Написать программу, работающую с массивом структур со следующими полями:
- Назание группы;
- Курс;
- Количество студентов в группе.
Программа должна позволять ввести новые данные, вывести содержимое массива на экран, вывести информацию по группе с минимальным количеством студентов, выйти из программы. Все действия программы организовать с помощью функций.
Рекомендации: Основная функция только реализует главное меню. Действие каждого пункта меню выполняет отдельная функция.
Спойлер
// Вариант 3
#include <stdio.h>
struct gruppi {
char group[10];
int kurs;
int kolich;
};
gruppi stud[10];
int count = 0;
void add();
void view();
void min_kolvo();
int main() {
char a;
do {
printf("\n 1 - add new");
printf("\n 2 - view all");
printf("\n 3 - min kol-vo studentov");
printf("\n 0 - exit\n");
a = getchar();
switch (a) {
case '1': add(); break;
case '2': view(); break;
case '3': min_kolvo(); break;
}
} while (a != '0');
}
void add() {
printf("\n%i:\n", count);
printf("gruppa: ");
scanf("%s", stud[count].group);
printf("kurs: ");
scanf("%i", &stud[count].kurs);
printf("studentov: ");
scanf("%i", &stud[count].kolich);
count++;
getchar();
return;
}
void view() {
int i;
for (i = 0; i < count; i++) {
printf("\n%i:\n", i);
printf("gruppa: %s", stud[i].group);
printf("\nkurs: %i", stud[i].kurs);
printf("\nstudentov: %i\n", stud[i].kolich);
}
getchar();
return;
}
void min_kolvo() {
int i, min;
min = stud[0].kolich;
for (i = 1; i < count; i++) {
if (min > stud[i].kolich) {
min = stud[i].kolich;
}
}
for (i = 0; i < count; i++) {
if (stud[i].kolich == min) {
printf("\n%i:\n", i);
printf("gruppa: %s", stud[i].group);
printf("\nkurs: %i", stud[i].kurs);
printf("\nstudentov: %i\n", stud[i].kolich);
}
}
getchar();
return;
}
Вариант А4
Написать программу, работающую с массивом структур со следующими полями:
- Назание товара;
- Цена товара;
- Остаток товара на складе.
Программа должна позволять ввести новые данные, вывести содержимое массива на экран, вывести среднюю цену определенного товара, выйти из программы. Все действия программы организовать с помощью функций.
Рекомендации: Основная функция только реализует главное меню. Действие каждого пункта меню выполняет отдельная функция.
Спойлер
// Вариант 4
#include <stdio.h>
#include <string.h>
struct shop {
char name[30];
float cost;
int stock;
};
shop sh[10];
int count = 0;
void add();
void view();
void item();
int main() {
char c;
do {
printf("\n");
printf("1 - add\n");
printf("2 - view\n");
printf("3 - cost item\n");
printf("0 - exit\n");
c = getchar();
switch (c) {
case '1': add(); break;
case '2': view(); break;
case '3': item(); break;
}
getchar();
} while (c != '0');
}
void add() {
printf("\n%i\n", count);
scanf("%s", sh[count].name);
scanf("%f", &sh[count].cost);
scanf("%i", &sh[count].stock);
count++;
return;
}
void view() {
int i;
for (i = 0; i < count; i++) {
printf("\n%i: ", i);
printf("%s ", sh[i].name);
printf("%.2f ", sh[i].cost);
printf("%i ", sh[i].stock);
}
getchar();
return;
}
void item() {
char s[30];
int i, cmp, num = 0, allmoney = 0, allgoods = 0;
float srcost = 0;
scanf("%s", s);
for (i = 0; i < count; i++) {
cmp = strcmp(s, sh[i].name);
if (cmp == 0) {
allmoney = (sh[i].cost * sh[i].stock) + allmoney;
allgoods = sh[i].stock + allgoods;
num++;
}
}
srcost = allmoney / allgoods;
printf("Item %s cost %.2f of %i different types:", s, srcost, num);
return;
}
