#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <locale.h>
#include <string.h>
struct detail { char name[50]; int price; int col; };
void v(int s, detail const (*mas)[5]) {
for (int i = 0; i < s; i++) {
printf_s("Деталь №%d\n", i + 1);
printf_s("Введите название детали:");
scanf_s("%s", (*mas)[i].name, 50);
printf_s("Введите цену детали:");
scanf_s("%d", &(*mas)[i].price);
printf_s("Введите количество деталей:");
scanf_s("%d", &(*mas)[i].col);
}
}
int maximum(int s, detail const (*mas)[5]) {
int max;
int n = 0;
max = (*mas)[0].price;
for (int i = 0; i < s; i++) {
if ((*mas)[i].price > max) {
max = (*mas)[i].price;
n = i;
}
}
return n;
}
void f(const char* z, detail const (*mas)[5]) {
int c = 0;
int x = 0;
for (int i = 0; i < 5; i++) {
x = strcmp((*mas)[i].name, z);
if (x == 0) c = i;
}
printf_s("Цена указаннной детали: %d\n", (*mas)[c].price);
printf_s("Количество штук указанной детали: %d\n", (*mas)[c].col);
}
int main()
{
detail mas[5];
setlocale(LC_ALL, "Rus");
v(5, &mas);
int z = maximum(5, &mas);
printf_s("Самая дорогая деталь это %s\n", mas[z].name);
printf_s("Цена самой дорогой детали %d\n", mas[z].price);
printf_s("Количество деталей %d\n", mas[z].col);
char y[10];
while (getchar() != '\n');
gets_s(y);
f(&y[0], &mas);
}
Переменную
detail mas[5];
нужно перенести внутрь функции main, а в остальные функции передать указатель на эту переменную.
(Обсуждение вида указателей оставим за скобками этого вопроса)