Ввод/вывод данных элементов структуры через функцию - 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;
}