Есть код на языке си для поиска минимального элемента в массиве в структуре. Надо вывести также год, соответствующий данному элементу массива, то есть под тем же индексом. Вопрос: Как это сделать?


int min = p.ugol[0];
for (int k = 0; k < f; k++) {
if (p.ugol[k] < min) {
min = p.ugol[k];
}
}
printf("Наименьшее количество угля: %d ", min);

f - количество строк (элементов массива)


marcingulbicki5: Проверьте включена-ли библиотека stdio.h, на visual studio у меня работает
Вованичикчка: Скорее всего, Вы вводите вещественные числа, используя в качестве десятичного разделителя точку, например, "1.2". Но в русской локализации разделителем является запятая, поэтому вводите вещественные числа, отделяя десятичную часть запятой, например, "1,2"

Ответы

Ответ дал: Вованичикчка
0

Можно не создавать переменную min, а вместо нее использовать minIndex, в которую будет сохраняться индекс минимального элемента.

int minIndex = 0;

for (int k = 0; k < f; k++) {

if (p.ugol[k] < p.ugol[minIndex]) {

minIndex = k;

}

}

printf("Наименьшее количество угля: %d ", p.ugol[minIndex]);

printf("Год: %d ", p.g[minIndex]);


alexkaverz: Спасибо за ответ, но в таком случае, он почему-то неверно выдает значение угля, в то время как год, содержащий наименьшее количество угля указывается верно. Не знаете случайно, с чем это связано?
Вованичикчка: Нужно заменить %d на %f, потому что Вы выводите количество угля, которое хранится в массиве типа float
Вас заинтересует