Ввод/вывод данных элементов структуры через функцию - C (СИ)
Формулировка задачи:
Разработать программу учета покупок ювелирного магазина. Данные о покупках хранить в виде массива структур. Итоговая информация должна выводиться на экран в виде таблицы, отсортированной по стоимости ювелирного украшения.
(в программе использовать структуры; все логически законченные части программы оформить в виде отдельных функций)
Не понимаю, как осуществить ввод/вывод данных элементов структуры через функцию... Помогите пожалуйста!!!
#include <stdio.h> #include <conio.h> struct YuShop{ char Name[10];// назвоние изделия float Cena;// цена char Prod[10];// продавец char Pokup[10];// покупатель int Data[3];//дата продажи };
Решение задачи: «Ввод/вывод данных элементов структуры через функцию»
textual
Листинг программы
#include <iostream> #include <stdio.h> const int n = 10; int size = 0; typedef struct YuShop{ char name[n];// наименование изделия double cena;// цена char prod[n];// продавец char pokup[n];// покупатель int data[3];// дата покупки }SHOP; SHOP sh[100]; // Оглашение масива структур void input(int size) { for(int i = 0; i < size; i++) { do { printf("\n№%d Nazvanie tovara: ", i + 1); scanf("%s", &sh[i].name); }while(!strcmp(sh[i].name, ""));// выполняется пока строчка не пуста printf("\nCena: "); scanf("%lf", &sh[i].cena); do { printf("\nProdavec: "); scanf("%s", &sh[i].prod); }while(!strcmp(sh[i].prod, "")); do { printf("\nPokupatel: "); scanf("%s", &sh[i].pokup); }while(!strcmp(sh[i].pokup, "")); printf("\nDen\' prodagu: "); scanf("%d", &sh[i].data[0]); printf("\nMуsac prodagu: "); scanf("%d", &sh[i].data[1]); printf("\nGod prodagu: "); scanf("%d", &sh[i].data[2]); } } void show(int size){ printf("+---------------+--------+---------------+---------------+----------+\n"); printf("+-----Tovar-----+--Cena--+---Prodavec----+---Pokupatel---+---Data---+\n"); printf("+ + + + + +\n"); for(int i = 0; i < size; i++) { printf("+%-15s|%-8.2lf|%-15s|%-15s|%-2d.%-2d.%-2d +\n", sh[i].name, sh[i].cena, sh[i].prod, sh[i].pokup, sh[i].data[0], sh[i].data[1], sh[i].data[2]);} printf("+---------------+--------+---------------+---------------+----------+\n"); } void sortByPrice(int size) { //Сортировка методом выбора double tmp; int i, j, pos; for(i = 0; i < size; ++i) { pos = i; tmp = sh[i].cena; for(j = i + 1; j < size; ++j) { if (sh[j].cena < tmp) { pos = j; tmp = sh[j].cena; } } sh[pos].cena = sh[i].cena; sh[i].cena = tmp; } } int main (void){ printf("Skolko adresov budet v strukture? "); scanf("%d", &size); input(size); show(size); sortByPrice(size); printf("\n\n Posle sortirovki:\n"); show(size); getchar (); getchar (); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д