Форум программистов, компьютерный форум CyberForum.ru

максимум в одномерном массиве - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.94
eugeneC+
0 / 0 / 0
Регистрация: 24.06.2012
Сообщений: 16
25.06.2012, 16:59     максимум в одномерном массиве #1
Добрый день.

Хочу найти максимум в одномерном массиве. Подскажите, где делаю не так. И вопрос: нужно ли для поиска максимума создавать еще один цикл или же можно сделать все в одном?


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <cstdlib>
#include <time.h>
 
 
using namespace std;
 
int main()
{
 
srand(time(0));
 int mass[10];
 int i;
 int n;
 int max;
 int min;
 
 
 for(i=0;i<10;i++)
  {
 
      n=rand();
      mass[i]=n;
 
      cout<<mass[i]<<" "<<"\n"<<endl;
 
  }
 
 
 
       max=0;
         mass[0]=max;
 
    if ( mass[i]>max)
 
       {
           max=mass[i];
           cout<<"maximum = "<<max<<" ";
       }
 
     return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2012, 16:59     максимум в одномерном массиве
Посмотрите здесь:

C++ максимум в массиве
Максимум в массиве C++
В одномерном массиве целых чисел заменить минимум на максимум C++
Пятый максимум в массиве C++
C++ Минимум и максимум в двумерном массиве
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vladzzx
27 / 19 / 1
Регистрация: 16.06.2012
Сообщений: 95
25.06.2012, 17:02     максимум в одномерном массиве #2
Условие if - проверяет только i-ый элемент. Засунь это в цикл.
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
25.06.2012, 17:04     максимум в одномерном массиве #3
Можно так


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream> 
#include <ctime> 
#include <cstdlib>
using namespace std;
int main() 
{   
    srand((unsigned) time(0));
    const int size = 10; 
    int array[size]; 
    int i; 
    int max;
    
    for ( i = 0; i < size; i++) 
        array[i] = rand() % 10;  
 
    for ( i = 0; i < size; i++) 
        cout << array[i] << " ";  
    cout << endl;
 
    max = array[0]; 
 
    for ( i = 1; i < size; i++) 
        if( max < array[i]) 
            max = array[i];  
 
    cout << "Max " << max << endl;
}
eugeneC+
0 / 0 / 0
Регистрация: 24.06.2012
Сообщений: 16
25.06.2012, 17:06  [ТС]     максимум в одномерном массиве #4
все равно где-то косяк, выдаёт много значения максимума. Может неправильно сам максимум считаю.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <cstdlib>
#include <time.h>
 
 
using namespace std;
 
int main()
{
 
srand(time(0));
 int mass[10];
 int i;
 int n;
 int max;
 int min;
 
 
 for(i=0;i<10;i++)
  {
 
      n=rand();
      mass[i]=n;
 
      cout<<mass[i]<<" "<<"\n"<<endl;
 
  }
 
 
 
       max=0;
         mass[0]=max;
 for(i=0;i<10;i++)
  {
    if ( mass[i]>max)
 
       {
           max=mass[i];
           cout<<"maximum = "<<max<<" ";
       }
  }
 
 
     return 0;
}
vladzzx
27 / 19 / 1
Регистрация: 16.06.2012
Сообщений: 95
25.06.2012, 17:07     максимум в одномерном массиве #5
Строку
C++
1
cout<<"maximum = "<<max<<" ";
вытащи из цикла и вставь после.
eugeneC+
0 / 0 / 0
Регистрация: 24.06.2012
Сообщений: 16
25.06.2012, 17:18  [ТС]     максимум в одномерном массиве #6
все работает. спасибо.

Добавлено через 8 минут
Сразу еще один вопрос: как искать минимум? Если можно не сам код, а идею . Спасибо.
vladzzx
27 / 19 / 1
Регистрация: 16.06.2012
Сообщений: 95
25.06.2012, 17:20     максимум в одномерном массиве #7
Всё то же самое, только изначально берёшь некое большое значение (или первый элемент массива), и начинаешь с ним сравнивать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.06.2012, 17:37     максимум в одномерном массиве
Еще ссылки по теме:

C++ Определите максимум (М1) и минимум (М2) в массиве
C++ В одномерном массиве найти максимум, сумму, переставить элементы согласно условию
C++ В одномерном массиве найти максимум/минимум, среднее арифметическое

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4928 / 2671 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
25.06.2012, 17:37     максимум в одномерном массиве #8
Зачем вам лишние итерации? Вот, в один цикл всё:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cstdlib>
 
int main()
{
    std::srand( time(NULL) );
    const int N = 10;
    int arr[N], maxIndex = 0, minIndex = 0; 
    for (int i=0; i < N; i++)
    {
        arr[i] = rand() % 100; // элементу массива присваиваем СЧ в диапазоне от 0 до 99
        std::cout<< arr[i]<< " "; // выводим на экран
        if (arr[i] > arr[maxIndex]) // если число больше максимума
            maxIndex = i; // индекс максимального равен i
        else if (arr[i] < arr[minIndex]) // если число меньше минимума
            minIndex = i; // индекс минимального элемента равен i
     }
     std::cout<< "\nMax: "<< arr[maxIndex]
              << "\nMin: "<< arr[minIndex];
     return 0; 
}
http://liveworkspace.org/code/b4c7fe...5125eddbe0e298
Yandex
Объявления
25.06.2012, 17:37     максимум в одномерном массиве
Ответ Создать тему
Опции темы

Текущее время: 16:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru