Не корректно ищет максимальный и минимальный элемент массива
Вводится последовательность произвольных чисел, 0 — конец последовательности. Определить отношение минимального и максимального элементов друг к другу.
Ввожу несколько чисел, например - 2, 4, 6, 1, хочу закончить последовательность нулем, последовательность заканчивается, и мне выводит минимальный - 0, и максимальный - 6, вроде бы все правильно, но, минимальный должен быть 1, а не нулем, почему так?
#include <stdio.h>
#include <locale.h>
#include <math.h>
int main(){
int i, max, min, mas[255];
float z;
max = 0;
min = 0;
float q = 0;
while(mas[i++] != 0){
printf("element mas[%d] = ",i);
scanf("%d", &mas[i]);
if(mas[i] > max){
max=mas[i];
}
else if(mas[i] < min){
min=mas[i];
}
}
printf("%d", min);
printf("\n");
printf("%d", max);
return 0;
}
Ответы (1 шт):
Автор решения: Mikhailo
→ Ссылка
Замените
while(mas[i++] != 0){
на
for(i = 0; scanf("%d",&mas[i]) && mas[i] != 0; i++){
Так вы и i инициализируете, и с правильным элементом работать будете.