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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
sanches2805
0 / 0 / 0
Регистрация: 24.02.2012
Сообщений: 38
#1

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

09.03.2013, 22:42. Просмотров 334. Ответов 8
Метки нет (Все метки)

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



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;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2013, 22:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка в задаче про массивы (C++):

Бесконечный цикл в задаче про вырубку леса - C++
Вырубка леса Фермер Николай нанял двух лесорубов: Дмитрия и Федора, чтобы вырубить лес, на месте которого должно быть кукурузное поле....

Найти ошибку в задаче на файловый ввод/вывод (задача про МКАД) - C++
Длина Московской кольцевой автомобильной дороги —109 километров. Байкер Вася стартует с первого километра МКАД и едет со скоростью V...

Набрать код к задаче С++ массивы - C++
Помогите набрать код к задаче используя рандомные числа. Дана матрица 4х4, получить новую матрицу путем деления каждого элемента исходной...

Использование шаблонов функций в задаче на двумерные массивы - C++
Уважаемые программисты, необходима ваша помощь. Условие задачи:Дана прямоугольная матрица. Найти столбцы, не содержащие ни одного нулевого...

нужно применить компонент к задаче на массивы в c++ Builder! - C++
Условие: В данной матрице m*n (n&gt;=3,m&gt;=3) поменять местами столбцы с номерами 2 и n-1. помогите пожалуйста ! #include &lt;vcl.h&gt; ...

Ошибка в задаче - C++
Заданы моменты начала и конца некоторого промежудка времени в часах минутах и секундах ( в пределах одних суток) Найти продолжительность...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,168
Завершенные тесты: 2
09.03.2013, 22:55 #2
а если у тебя несколько элементов имеют максимальное или минимальное значение? суммируй между адресами максимального и минимального элементов
0
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
09.03.2013, 23:08 #3
Поменяй
C++
1
for(int m=IndMax;m!=IndMin;m++)
на
C++
1
for(int m=IndMax;m>=IndMin;m--)
и будет тебе счастье.
1
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
09.03.2013, 23:13 #4
Цитата Сообщение от egor2116 Посмотреть сообщение
и будет тебе счастье.
Индекс максимального элемента может быть и меньше минимального.
1
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;
}
Почти но что-то не то.
1
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
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 секунды
О уже кто то ответил
1
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; возможно я что-то дунул.
0
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
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;}
Аналогично для максимума.
1
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;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.03.2013, 23:41
Привет! Вот еще темы с ответами:

Одна ошибка в задаче - C++
Задача: Дан текстовый файл. Переписать его текст в новый файл таким образом, чтобы каждое предложение начиналось с новой строки и между...

Ошибка в задаче на ряды - C++
1.При некоторых заданных x и N, определяемых вводом, вычислить сумму N слагаемых заданного вида. 2.При некоторых заданных x и Е,...

ошибка в задаче с классом - C++
для 2х матриц (A, B) определить кол-во строк, сумма элементов которых положительна ошибка в строке ввода матрицы и звучит как :...

ошибка в задаче на палиндром - C++
Ребят помогите пожалуйста. Задачка найти палиндром в массиве. Писал-писал и в итоге в ф-ии последнее условие if (arr_t1==arr_t2) постоянно...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.03.2013, 23:41
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru