Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
2 / 2 / 3
Регистрация: 20.03.2015
Сообщений: 112
1

Индекс максимального элемента в массиве

26.03.2015, 20:18. Показов 606. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет, неправильно находит индекс максимального элемента в массиве, в чем причина, подскажите пожалуйста, голову уже сломала.
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include <locale.h>
#include <conio.h>
#include <iostream>
 
using namespace std;
 
main () {
 
setlocale(LC_ALL,"Russian");
int b,i,g,z,q,j,mx; float V,K,KV,VV,a,aa,maxk,maxbk,maxx; //Îáúÿâëåíèå ïåðåìåííûõ
 
float Dohkap[10]; //Массив для дохода без капитализации
float Dohbkap[10]; //Массив для дохода с капитализацией
 
string banki[10][6] //Массив банкав
    {
"1",   "Абсолют",                "г.Москва",          "Комерческий",   "Срочный",           "-",
        "2",   "Альфа-Банк",           "г.Москва",          "Комерческий",   "Накопительный",   "+",
        "3",   "ВТБ 24",                 "г.Москва",          "Комерческий",   "Срочный",           "-",
        "4",   "Сбербанк России",         "г.Москва",          "Комерческий",   "Накопительный",   "+",
        "5",   "Связь-Банк",           "г.Санкт-Питербург",     "Комерческий",   "Срочный",           "-",
        "6",   "Ситибанк",              "г.Москва",              "Комерческий",   "Сберегательный",     "+",
        "7",   "Росгосстрах банк",       "г.Санкт-Питербург",     "Комерческий",   "Накопительный",   "+",
        "8",   "Промсвязьбанк",        "г.Москва",          "Комерческий",   "Срочный",           "-",
        "9",   "Банк Петрокоммерц",     "г.Санкт-Питербург",     "Комерческий",   "Сберегательный",     "+",
        "10",  "ОТП-Банк",               "г.Москва",          "Комерческий",   "Сберегательный",     "+"
 
    };
    
    int pro[10]={12, 10, 11, 16, 15, 16, 10, 12, 14, 13}; //Массив процентов
    
    string kap[10]={"-", "+", "-", "+", "-", "+", "+", "-", "+", "+"}; //Массив капитализации
    
    cout<<"Введите исходные данные:"<<"\n"; //Ввод данных
    cout<<"Величина вклада(руб.)-"<<"\n";
    cin>>a;
    cout<<"Срок вклада(дней)-"<<"\n";
    cin>>b;
 
    KV=0;
    aa=a;
 
    
for(i=0;i<10;i++){     //Цикл для процентов без капитализации
    V=((aa*b*pro[i])/365)/100;
    KV=aa+V; 
    Dohbkap[i]=KV;
    cout<<"\n"<<"Доход без капитализации="<<KV;}
//----------------------------------------------------------------------------- 
 
for(i=0;i<10;i++){   //Цикл для проц с капитализацией
if (kap[i]=="+"){    //Проверка условия банк с капитализацией или нет
    aa=a;
    if(b>=30) {  
    g=b/30; 
        for(z=1;z<=g;z++) {
            K=((aa*pro[i]*30)/365)/100;
            aa=aa+K;  }  }   
            cout<<"\n"<<"Доход с капитализацией="<<aa;  }
            if(kap[i]=="-") {
            aa=0;   cout<<"\n"<<"Доход с капитализацией="<<aa; }
            Dohkap[i]=aa;                
    }
//------------------------------------------------------------------------------    
mx=0;
    maxk=Dohkap[0]; //Максимальный элемент массива c капит
    for(i=0;i<10;i++){  
        if(maxk<Dohkap[i])
            maxk=Dohkap[i];
            mx=i;
          }
     //int mx = Array.FindIndex(Dohkap,x => x == maxk);
   //-------------------------------------------------------  
        
   int mxb=0;
    maxbk=Dohbkap[0]; //Максимальный элемент массива без капит
    for(i=0;i<10;i++){  
        if(maxbk<Dohbkap[i])
            maxbk=Dohbkap[i];
            mxb=i;
         }
         
//--------------------------------------------------------------         
    if(maxbk>maxk)//Находим самый максимальный доход
            maxx=maxbk;
    else    maxx=maxk;
 
     
//----------------------------------------------------------            
                 
    cout <<"\n"<< maxx << "   ";
    cout <<"\n"<<"Dohkap["<< mxb<<"]"<< maxbk;
    cout <<"\n"<<"Dohkap["<< mx<<"]"<<maxk; 
 
    
    getch();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.03.2015, 20:18
Ответы с готовыми решениями:

Нахождение максимального элемента в массиве и его индекс (элемента)
Доброго времени суток. Вот исходный код поиска максимального элемента массива: ...

Определить индекс и значение максимального элемента в массиве через ссылку
Здравствуйте, помогите, пожалуйста: Программа запрашивает у пользователя размер массива, выделяет...

В линейном массиве заменить все элементы на число m (m – индекс максимального элемента)
Первый семестр

Valarray, индекс максимального элемента
Подскажите, пожалуйста в valarray есть функция myvalarray.max() А как получить индекс этого...

3
105 / 105 / 51
Регистрация: 11.04.2014
Сообщений: 160
26.03.2015, 21:49 2
Так должна работать Ваша программа?
Индекс максимального элемента в массиве

Вот код:
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <conio.h>
#include <iostream>
#include <string>
 
using namespace std;
 
void main ()
{
 
    setlocale(LC_ALL,"Russian");
    int b,i,g,z,q,j,mx; float V,K,KV,VV,a,aa,maxk,maxbk,maxx; 
 
    float Dohkap[10]; //Массив для дохода без капитализации
    float Dohbkap[10]; //Массив для дохода с капитализацией
 
    string banki[10][6] =
        {
            "1",   "Абсолют",               "г.Москва",             "Комерческий",  "Срочный",          "-",
            "2",   "Альфа-Банк",            "г.Москва",             "Комерческий",  "Накопительный",    "+",
            "3",   "ВТБ 24",                "г.Москва",             "Комерческий",  "Срочный",          "-",
            "4",   "Сбербанк России",       "г.Москва",             "Комерческий",  "Накопительный",    "+",
            "5",   "Связь-Банк",            "г.Санкт-Питербург",    "Комерческий",  "Срочный",          "-",
            "6",   "Ситибанк",              "г.Москва",             "Комерческий",  "Сберегательный",   "+",
            "7",   "Росгосстрах банк",      "г.Санкт-Питербург",    "Комерческий",  "Накопительный",    "+",
            "8",   "Промсвязьбанк",         "г.Москва",             "Комерческий",  "Срочный",          "-",
            "9",   "Банк Петрокоммерц",     "г.Санкт-Питербург",    "Комерческий",  "Сберегательный",   "+",
            "10",  "ОТП-Банк",              "г.Москва",             "Комерческий",  "Сберегательный",   "+"
 
        };
    
        int pro[10]={12, 10, 11, 16, 15, 16, 10, 12, 14, 13}; //Массив процентов
    
        string kap[10]={"-", "+", "-", "+", "-", "+", "+", "-", "+", "+"}; //Массив капитализации
    
        cout<<"Введите исходные данные:"<<"\n"; //Ввод данных
        cout<<"Величина вклада(руб.)-"<<"\n";
        cin>>a;
        cout<<"Срок вклада(дней)-"<<"\n";
        cin>>b;
 
        KV=0;
        aa=a;
 
    
    for(i=0;i<10;i++){     //Цикл для процентов без капитализации
        V=((aa*b*pro[i])/365)/100;
        KV=aa+V; 
        Dohbkap[i]=KV;
        cout<<"\n"<<"Доход без капитализации="<<KV;}
    //----------------------------------------------------------------------------- 
 
    for(i=0;i<10;i++){   //Цикл для проц с капитализацией
    if (kap[i]=="+"){    //Проверка условия банк с капитализацией или нет
        aa=a;
        if(b>=30) {  
        g=b/30; 
            for(z=1;z<=g;z++) {
                K=((aa*pro[i]*30)/365)/100;
                aa=aa+K;  }  }   
                cout<<"\n"<<"Доход с капитализацией="<<aa;  }
                if(kap[i]=="-") {
                aa=0;   cout<<"\n"<<"Доход с капитализацией="<<aa; }
                Dohkap[i]=aa;                
        }
    //------------------------------------------------------------------------------    
    mx=0;
        maxk=Dohkap[0]; //Максимальный элемент массива c капит
        for(i=0;i<10;i++){  
            if(maxk<Dohkap[i])
                maxk=Dohkap[i];
                mx=i;
              }
         //int mx = Array.FindIndex(Dohkap,x => x == maxk);
       //-------------------------------------------------------  
        
       int mxb=0;
        maxbk=Dohbkap[0]; //Максимальный элемент массива без капит
        for(i=0;i<10;i++){  
            if(maxbk<Dohbkap[i])
                maxbk=Dohbkap[i];
                mxb=i;
             }
         
    //--------------------------------------------------------------         
        if(maxbk>maxk)//Находим самый максимальный доход
                maxx=maxbk;
        else    maxx=maxk;
 
     
    //----------------------------------------------------------            
                 
        cout <<"\n"<< maxx << "   ";
        cout <<"\n"<<"Dohkap ["<< mxb<<"] "<< maxbk;
        cout <<"\n"<<"Dohkap ["<< mx<<"] "<<maxk; 
 
    
        getch();
}
0
105 / 105 / 51
Регистрация: 11.04.2014
Сообщений: 160
26.03.2015, 21:58 3
Ах, вот в чем дело:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for(i=0;i<10;i++) 
            if(maxk<Dohkap[i]){
                maxk=Dohkap[i];
                mx=i;
              }
        
       int mxb=0;
        maxbk=Dohbkap[0]; //Максимальный элемент массива без капит
        for(i=0;i<10;i++)
            if(maxbk<Dohbkap[i]){
                maxbk=Dohbkap[i];
                mxb=i;
             }
Вы скобочки забыли фигурные.
И лучше доп. переменную не заводить, а вместо:
C++
1
maxbk
писать:
C++
1
Dohbkap[mxb]
1
2 / 2 / 3
Регистрация: 20.03.2015
Сообщений: 112
26.03.2015, 22:03  [ТС] 4
Ох, спасибо, точно! проверяла вроде все)
0
26.03.2015, 22:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2015, 22:03
Помогаю со студенческими работами здесь

Найти индекс максимального элемента массива
Добрый вечер помогите пожалуйста в одномерном массиве состоящем из n целых элементов вычислить...

Найти индекс максимального элемента массива
У меня есть код программы, которая выводит индекс максимального по значению элемента массива: ...

Найти Индекс максимального нечётного элемента
Написал программу по поиску индекса максимального нечетного элемента. Но нумерация идет с 0, нужно...

Найти индекс первого максимального элемента массива
Найти индекс первого максимального элемента массива, Найти максимальный из элементов массива в...

Найти индекс максимального по модулю элемента массива
Написать программу работы с одномерным массивом из 15 вещественных элементов для решения задач: ...

Найти индекс максимального элемента заданного массива
дан некий массив , найти индекс максимального элемента этого массива (а если максимальных элементов...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru