Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Проблема с массивами! DEV-C++


Рекомендуемые сообщения

В программе нужно найти максимальное и минимальное значение; минимальное находится а максимальное нет, помогите, пожалуйста!

#include <cstdlib>

#include <iostream>

using namespace std;

int main(int argc, char *argv[])

{

int high, low, temps[10], index;

high=temps[0];

low=temps[0];

for (index=0; index<10; index++)

{

printf("input #%d: ", index);

scanf("%d", &temps[index]);

if (temps[index]>high)

high=temps[index];

if (temps[index]<low)

low=temps[index];

}

printf("min value %d\n", low);

printf("max value %d\n", high);

system("PAUSE");

return EXIT_SUCCESS;

}

Ссылка на комментарий
Поделиться на другие сайты

little_greg:

Начальные значения high и low равны temps[0], значение которого в это время равно чему угодно. Потому и работает как компилятор на душу (точнее, в tems[0]) положит.

Ссылка на комментарий
Поделиться на другие сайты

Тролль:

Теперь вроде все нормально, но есть какой-нить другой способ решения?

#include <cstdlib>

#include <iostream>

using namespace std;

int main(int argc, char *argv[])

{

int high, low, temps[10], index;

for (index=0;index<10; index++)

{

printf("input #%d: ", index);

scanf("%d", &temps[index]);

}

high=temps[0];

low=temps[0];

index=0;

while (index<10)

{

if (temps[index]>high)

high=temps[index];

if (temps[index]<low)

low=temps[index];

index++;

}

printf("min value %d\n", low);

printf("max value %d\n", high);

system("PAUSE");

return EXIT_SUCCESS;

}

Ссылка на комментарий
Поделиться на другие сайты

Цикл поиска максимума и минимума проще было сделать обычным for:

high=low=temps[0];

for(index=1;index<10; index++)

{if(temps[index]>high)high=temps[index]; if(temps[index]<low)low=temps[index];}

А вообще максимум и минимум иначе как перебором элементов массива не найти, так что все нормально.

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Я щас попробовал сделать, как ты написал, но программа минимальная значение находит, а максимальное - нет

Ссылка на комментарий
Поделиться на другие сайты

Вот текст полностью:

#include <cstdlib>#include <iostream>using namespace std;int main(){int high, low, temps[10], index;for (index=0;index<10;index++) {printf("input #%d: ",index); scanf("%d",&temps[index]);}high=low=temps[0]; for(index=1;index<10;index++) {if(temps[index]>high)high=temps[index]; if(temps[index]<low)low=temps[index];}printf("min value %d\nmax value %d\n",low,high);system("PAUSE"); return EXIT_SUCCESS;}
Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...