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 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти