Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2011, 12:38   #1
Corvette
Пользователь
 
Регистрация: 31.07.2011
Сообщений: 55
По умолчанию Работа с массивам

Добрый день!

Я только начал изучать язык программирования С++. И к сожалению не могу понять роботу следующий программы. Программа взята из книги Шилдта Базовый курс С++.
Код:
#include <iostream>
#include <conio.h>
#include <cstdlib>

using namespace std;

int main ()
{
    int i, min_value, max_value;
    int list [10];
    
    for (i=1; i<10; i++)
    {
    list [i] = rand ();
    }
    
    min_value = list [0];
    for (i=1; i<10; i++)
    if (min_value >list [i]) min_value = list [i];
    
    cout << "Min value:  " << min_value << " \n";
     
    max_value = list [0];
    for (i=1; i<10; i++)
    if (max_value >list [i]) max_value = list [i];
    
    cout << "Max value:  " << max_value << " \n";
    
    getch ();
    
    return 0;
}
Программа должна выводить максимальный и минимальный элемент массива (который случайно сгенерировался), так написано в книге. Но у меня выводиться одно числи как максимальное и минимальное.

Как я понял этот код: что мы задаем массив из 10 элементов. Каждый элемент случайно генерируется. Потом мы принимаем первый элемент массива (min_value = list [0] как минимальный. И сравниваем весь массив с этим элементом. Но ведь при проверки условия может быть такое, что и 2 и 3 элемент будет меньше. Он будет выводить все элементы которые меньше элемента с индексом 0? И не будет производить сравнения между элементами для нахождения наименьшего? Как я понял данный листинг производит сравнения элемента с индексом 0 с остальными и находить все элементы меньше или больше него? А как тогда найти наименьший и наибольший элемент массива? Если я не прав исправьте пожалуйста? Помогите новичку разобраться

Заранее благодарю, за помощь.

Последний раз редактировалось Stilet; 31.07.2011 в 19:28.
Corvette вне форума Ответить с цитированием
Старый 31.07.2011, 13:20   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Код:
int list [10];

 for (i=1; i<10; i++)
 {
 list [i] = rand ();
 }
Чеем нулевой элемент проинициализирован?
p51x вне форума Ответить с цитированием
Старый 31.07.2011, 13:46   #3
Corvette
Пользователь
 
Регистрация: 31.07.2011
Сообщений: 55
По умолчанию

Это опечатка. Должно быть так
Код:
  
int list [10];
    
    for (i=0; i<10; i++)
    {
    list [i] = rand ();
    }

Последний раз редактировалось Stilet; 31.07.2011 в 19:28.
Corvette вне форума Ответить с цитированием
Старый 31.07.2011, 13:53   #4
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Код:
for (i=1; i<10; i++)
if (max_value < list [i]) max_value = list [i];
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 31.07.2011, 17:06   #5
Corvette
Пользователь
 
Регистрация: 31.07.2011
Сообщений: 55
По умолчанию

Спасибо!
Объясните пожалуйста этот листинг сравнивает все числа и находит меньшое большее? Или как я понял он сравнивает только с нулевым элемнтом?
Corvette вне форума Ответить с цитированием
Старый 31.07.2011, 17:08   #6
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Он находит меньший и больший элементы массива.
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 31.07.2011, 17:12   #7
Corvette
Пользователь
 
Регистрация: 31.07.2011
Сообщений: 55
По умолчанию

Спасибо!!!
Corvette вне форума Ответить с цитированием
Старый 01.08.2011, 05:00   #8
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Цитата:
Сообщение от Corvette Посмотреть сообщение
Спасибо!
Объясните пожалуйста этот листинг сравнивает все числа и находит меньшое большее? Или как я понял он сравнивает только с нулевым элемнтом?
Он все сравнивает по очереди. За основу сравнения берет нулевой элемент в начале.
An1ka вне форума Ответить с цитированием
Старый 04.08.2011, 21:51   #9
Corvette
Пользователь
 
Регистрация: 31.07.2011
Сообщений: 55
По умолчанию

Спасибо!!!
Corvette вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача по массивам! Анна22 Паскаль, Turbo Pascal, PascalABC.NET 1 07.12.2010 00:12
по массивам lilia2121 Помощь студентам 3 15.04.2010 13:05
ЗАДАНИЕ ПО МАССИВАМ rump Помощь студентам 1 01.06.2009 00:26
Задание по массивам rump Помощь студентам 5 29.05.2009 21:57