Есть код на языке си для поиска минимального элемента в массиве в структуре. Надо вывести также год, соответствующий данному элементу массива, то есть под тем же индексом. Вопрос: Как это сделать?
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]);
Спасибо за ответ, но в таком случае, он почему-то неверно выдает значение угля, в то время как год, содержащий наименьшее количество угля указывается верно. Не знаете случайно, с чем это связано?
Нужно заменить %d на %f, потому что Вы выводите количество угля, которое хранится в массиве типа float
Вас заинтересует
2 года назад
2 года назад
2 года назад
8 лет назад
8 лет назад
9 лет назад