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

Ошибка в задаче про массивы - C++

Восстановить пароль Регистрация
 
sanches2805
0 / 0 / 0
Регистрация: 24.02.2012
Сообщений: 38
09.03.2013, 22:42     Ошибка в задаче про массивы #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 <stdio.h>
#include <iostream>
#include <conio.h>
#include<math.h>
 
using namespace std;
 
int func(int mass[],int size)
{
    int max=mass[0];
    int min=mass[0];
    int IndMin=0;
    int IndMax=0;
for(int i=0;i<size;i++) if(mass[i]<min) IndMin=i;
 
for(int n=0;n<size;n++)if(mass[n]>max) IndMax=n;
int tmp=0;
for(int m=IndMax;m!=IndMin;m++)
{
    tmp+=mass[m];
    
}
return tmp;
}
 
 
int main()
 
{   
    int arr[4];
    for(int i=0;i<4;i++)
    cin>>arr[i];
 
 
    func (arr,4);
    
    getch();
 
 
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кудаив
328 / 405 / 24
Регистрация: 27.05.2012
Сообщений: 1,162
Завершенные тесты: 2
09.03.2013, 22:55     Ошибка в задаче про массивы #2
а если у тебя несколько элементов имеют максимальное или минимальное значение? суммируй между адресами максимального и минимального элементов
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
09.03.2013, 23:08     Ошибка в задаче про массивы #3
Поменяй
C++
1
for(int m=IndMax;m!=IndMin;m++)
на
C++
1
for(int m=IndMax;m>=IndMin;m--)
и будет тебе счастье.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
09.03.2013, 23:13     Ошибка в задаче про массивы #4
Цитата Сообщение от egor2116 Посмотреть сообщение
и будет тебе счастье.
Индекс максимального элемента может быть и меньше минимального.
l2ded
 Аватар для l2ded
80 / 68 / 11
Регистрация: 10.05.2011
Сообщений: 284
09.03.2013, 23:21     Ошибка в задаче про массивы #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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int func(int mass[],int size)
{
int max=mass[0],min=mass[0],IndMin=0,IndMax=0,i=1,tmp=0;
for(;i<size;i++) {
 if(mass[i]<min) IndMin=i;
 if(mass[i]>max) IndMax=i;
}
 
if (IndMin<IndMax)
    for(i=IndMin;i<=IndMax;i++)
        tmp+=mass[i];
else
    for(i=IndMax;i<=IndMin;i++)
        tmp+=mass[i];
 
return tmp;
}
 
 
int main(void)
{   int arr[4];
    for(int i=0;i<4;i++)
        cin>>arr[i];
 
    cout<<func (arr,4);
    getch();
    return 0;
}
Почти но что-то не то.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
09.03.2013, 23:27     Ошибка в задаче про массивы #6
Понятно что много разных ситуаций
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if(IndMin<IndMax){
for(int m=IndMax;m>=IndMin;m--)
 
{
    tmp+=mass[m];
 
}
}
else{
    for(int m=IndMin;m>=IndMax;m--)
 
    {
        tmp+=mass[m];
 
    }
 
 
}
Добавлено через 44 секунды
О уже кто то ответил
l2ded
 Аватар для l2ded
80 / 68 / 11
Регистрация: 10.05.2011
Сообщений: 284
09.03.2013, 23:30     Ошибка в задаче про массивы #7
Цитата Сообщение от l2ded Посмотреть сообщение
C++
1
if(mass[i]<min) IndMin=i;
я хз почему, но при :
9 8 1 4 // IndMin=3; возможно я что-то дунул.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
09.03.2013, 23:34     Ошибка в задаче про массивы #8
Цитата Сообщение от l2ded Посмотреть сообщение
C++
1
if(mass[i]<min) IndMin=i;
C++
1
if (mass[i] < min) {min = mass[i]; IndMin = i;}
Аналогично для максимума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.03.2013, 23:41     Ошибка в задаче про массивы
Еще ссылки по теме:

C++ Набрать код к задаче С++ массивы
C++ Сортировка выбором (метод прямого выбора). Ошибка в задаче
Использование шаблонов функций в задаче на двумерные массивы C++

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

Или воспользуйтесь поиском по форуму:
l2ded
 Аватар для l2ded
80 / 68 / 11
Регистрация: 10.05.2011
Сообщений: 284
09.03.2013, 23:41     Ошибка в задаче про массивы #9
Цитата Сообщение от kazak Посмотреть сообщение
C++
1
if (mass[i] < min) {min = mass[i]; IndMin = i;}
Аналогично для максимума.
Как я так мог тупануть это же не моя ошибка

Вот твой код
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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int func(int mass[],int size)
{
int max=mass[0],min=mass[0],IndMin=0,IndMax=0,i=1,tmp=0;
for(;i<size;i++) {
 if(mass[i]<min) {min=mass[i];IndMin=i;}
 if(mass[i]>max) {max=mass[i];IndMax=i;}
}
 
if (IndMin<IndMax)
    for(i=IndMin;i<=IndMax;i++)
        tmp+=mass[i];
else
    for(i=IndMax;i<=IndMin;i++)
        tmp+=mass[i];
 
return tmp;
}
 
 
int main(void)
{   int arr[4];
    for(int i=0;i<4;i++)
        cin>>arr[i];
 
    cout<<func (arr,4);
    getch();
    return 0;
}
Yandex
Объявления
09.03.2013, 23:41     Ошибка в задаче про массивы
Ответ Создать тему
Опции темы

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