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

Проблема с массивами! 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;}
Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

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

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