little_greg Опубликовано 6 апреля, 2009 Жалоба Поделиться Опубликовано 6 апреля, 2009 В программе нужно найти максимальное и минимальное значение; минимальное находится а максимальное нет, помогите, пожалуйста! #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; } Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 6 апреля, 2009 Жалоба Поделиться Опубликовано 6 апреля, 2009 little_greg: Начальные значения high и low равны temps[0], значение которого в это время равно чему угодно. Потому и работает как компилятор на душу (точнее, в tems[0]) положит. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
little_greg Опубликовано 6 апреля, 2009 Автор Жалоба Поделиться Опубликовано 6 апреля, 2009 Тролль: Теперь вроде все нормально, но есть какой-нить другой способ решения? #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; } Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 6 апреля, 2009 Жалоба Поделиться Опубликовано 6 апреля, 2009 (изменено) Цикл поиска максимума и минимума проще было сделать обычным 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];} А вообще максимум и минимум иначе как перебором элементов массива не найти, так что все нормально. Изменено 6 апреля, 2009 пользователем Тролль Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
little_greg Опубликовано 6 апреля, 2009 Автор Жалоба Поделиться Опубликовано 6 апреля, 2009 Я щас попробовал сделать, как ты написал, но программа минимальная значение находит, а максимальное - нет Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 6 апреля, 2009 Жалоба Поделиться Опубликовано 6 апреля, 2009 (изменено) Вот текст полностью: #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;} Изменено 6 апреля, 2009 пользователем Тролль Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.