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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы