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

В одномерном массиве, состоящем из N целых элементов, вычислить номер максимального элемента массива - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
gulllak
44 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 66
21.01.2013, 20:31     В одномерном массиве, состоящем из N целых элементов, вычислить номер максимального элемента массива #1
Задание:
В одномерном массиве, состоящем из N целых элементов, вычислить:
1) номер максимального элемента массива;
2) произведение элементов массива, расположенных между первым и вторым нулевыми
элементами.
Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в нечетных позициях, а во второй половине — элементы, стоявшие в четных позициях.

Программа работает и все считает, но нужно добавить условие для второго пункта задания что бы выводил сообщение "Невозможно посчитать произведение" когда:
1) Когда нет нулей
2) Когда в массиве один ноль
3) Когда в массиве больше двух нулей
4) когда между нулями стоит один элемент
5) когда нули рядом друг с другом

Помогите дописать программу, я не пойму как эти условия добавить. Пожалуйста.

Вот мой код:

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>
 
using namespace std;
 
 
int main()
{setlocale(0,"rus");
    int *m,n,i,j,UMN=1,NOM_MAX,MAX=-1000,NOMER1=-1,NOMER2=-1;
    cout<<"Введите кол-во элементов: ";
    cin>>n;
 
    m=new int[n];
 
    cout<<"Заполните массив из "<<n<<" элементов."<<endl;
    for(i=0;i<n;i++)// заполняем массив
    {
    cin>>m[i];
    if(m[i]==0 && NOMER1!=-1 && NOMER2==-1)NOMER2=i;
    if(m[i]==0 && NOMER1==-1)NOMER1=i;
    
 
    if(m[i]>MAX){MAX=m[i];NOM_MAX=i;}
    }
 
 
    for(i=NOMER1+1;i<NOMER2;i++)
    {
     UMN*=m[i];
    }
 
 cout<<endl<<"Номер максимального элемента: "<<NOM_MAX+1<<"."<<endl<<"Произведение элементов: "<<UMN<<"."<<endl;
 
 cout<<"Отсортированный массив :"<<endl;
    
    for(j=0;j<n;j++)
    if(j%2==0)cout<<m[j]<<" ";
 
    for(j=0;j<n;j++)
    if(j%2!=0)cout<<m[j]<<" ";
    cout<<endl;
 
 system("pause");
 
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2013, 20:31     В одномерном массиве, состоящем из N целых элементов, вычислить номер максимального элемента массива
Посмотрите здесь:

C++ В одномерном массиве, состоящем из N целых элементов, вычислить номер максимального элемента массива
C++ В одномерном массиве, состоящем из 30 целых элементов, вычислить сумму элементов массива, расположенных после последнего элемента, равного нулю.
В одномерном массиве, состоящем из n вещественных элементов, вычислить номер минимального по модулю элемента и сумму модулей элеменов массива. C++
C++ В одномерном массиве вычислить номер максимального элемента массива и сумму элементов массива, расположенных после первого положительного
Шаблоны функций. В одномерном массиве, состоящем из n вещественных элементов, вычислить номер максимального по модулю элемента массива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HardLogin
 Аватар для HardLogin
52 / 52 / 1
Регистрация: 20.01.2013
Сообщений: 640
Записей в блоге: 1
21.01.2013, 21:20     В одномерном массиве, состоящем из N целых элементов, вычислить номер максимального элемента массива #2
ну номер макс элемента массива лучше всего так определить
C++
1
2
3
int m = a[ 0 ];
for( int i = 0; i < n - 1; i++ )
if( a[ i + 1 ] > m )m = a[ i + 1 ];
m - будет максимальным значением массива
gulllak
44 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 66
22.01.2013, 00:12  [ТС]     В одномерном массиве, состоящем из N целых элементов, вычислить номер максимального элемента массива #3
Цитата Сообщение от HardLogin Посмотреть сообщение
ну номер макс элемента массива лучше всего так определить
C++
1
2
3
int m = a[ 0 ];
for( int i = 0; i < n - 1; i++ )
if( a[ i + 1 ] > m )m = a[ i + 1 ];
m - будет максимальным значением массива
Ну так это же у меня есть, мне условия нужно вписать(
HardLogin
 Аватар для HardLogin
52 / 52 / 1
Регистрация: 20.01.2013
Сообщений: 640
Записей в блоге: 1
22.01.2013, 16:28     В одномерном массиве, состоящем из N целых элементов, вычислить номер максимального элемента массива #4
а типо вводят один вычисляется номер максимального элемента массива и т.д.?
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
22.01.2013, 17:01     В одномерном массиве, состоящем из N целых элементов, вычислить номер максимального элемента массива #5
Ну как-то так:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <iostream>
 
using namespace std;
 
 
int main()
{setlocale(0,"rus");
    int *m,n,i,j,UMN=1,NOM_MAX,MAX=-1000,NOMER1=-1,NOMER2=-1;
    cout<<"Введите кол-во элементов: ";
    cin>>n;
 
    m=new int[n];
 
    cout<<"Заполните массив из "<<n<<" элементов."<<endl;
    for(i=0;i<n;i++)// заполняем массив
    {
    cin>>m[i];
 
    if(m[i]>MAX){MAX=m[i];NOM_MAX=i;}
    }
 
    int k=0;
    for(i=0;i<n;i++){
        if(m[i]==0) k++;
    }
    bool T=false;
    if(k==2){
        for(i=0;i<n;i++)
            if(m[i]==0){ NOMER1=i; break;}
        for(i=n-1;i>=0;i--)
            if(m[i]==0){ NOMER2=i; break;}
        if((NOMER1+1==NOMER2) || (NOMER1+2==NOMER2))  
            cout<<"Невозможно посчитать произведение"<<endl;
        else{
            for(i=NOMER1+1;i<NOMER2;i++)
              {
                 UMN*=m[i];
            }
            T=true;
        }
    }
    else
        cout<<endl<<endl<<"Невозможно посчитать произведение!"<<endl<<endl;
 
    
 
 cout<<endl<<"Номер максимального элемента: "<<NOM_MAX+1<<"."<<endl;
 if(T==true)
 cout<<"Произведение элементов: "<<UMN<<"."<<endl;
 
 cout<<"Отсортированный массив :"<<endl;
    
    for(j=0;j<n;j++)
    if(j%2==0)cout<<m[j]<<" ";
 
    for(j=0;j<n;j++)
    if(j%2!=0)cout<<m[j]<<" ";
    cout<<endl;
 
 system("pause>0");
 return 0;
 
}
gulllak
44 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 66
23.01.2013, 03:51  [ТС]     В одномерном массиве, состоящем из N целых элементов, вычислить номер максимального элемента массива #6
The_bolT
Спасибо большое, все работает!!))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2014, 18:36     В одномерном массиве, состоящем из N целых элементов, вычислить номер максимального элемента массива
Еще ссылки по теме:

В одномерном массиве, состоящем из n целых элементов, 1) номер максимального элемента массива; 2) произведение элементов массива, расположенных между C++
C++ В одномерном массиве, состоящем из n элементов, вычислить сумму эле- ментов после максимального элемента
C++ В одномерном массиве, состоящем из n вещественных элементов, вычислить номер минимального по модулю элемента массива

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

Или воспользуйтесь поиском по форуму:
Мамикон
0 / 0 / 0
Регистрация: 22.04.2014
Сообщений: 3
22.04.2014, 18:36     В одномерном массиве, состоящем из N целых элементов, вычислить номер максимального элемента массива #7
Подскажите в какой программе вы писали код и возможно ли реализовать это в Visual studio?
Yandex
Объявления
22.04.2014, 18:36     В одномерном массиве, состоящем из N целых элементов, вычислить номер максимального элемента массива
Ответ Создать тему
Опции темы

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