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

Ошибка в сумме модулей элементов массива - C++

Восстановить пароль Регистрация
 
t1gn
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 19
18.03.2014, 19:56     Ошибка в сумме модулей элементов массива #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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <iostream>
#include <locale.h>
 
using namespace std;
//---------------------------------------------------------------------------
 
#pragma argsused
int main(int argc, char* argv[])
{
        setlocale(LC_ALL, "rus");
    int n, *arr, i, indmin = 0, sum = 0;
    cout << "Razmer: "; cin >> n;
    arr = new int[n];
    cout << "Elementy: " << endl;
    for(i = 0; i < n; i++) cin >> arr[i];
    int min=arr[0];
    for(i = 0; i < n; i++)
    {
        if(arr[i] < min)
        {
            min = arr[i];
            indmin = i;
        }
    }
    for(i = 0; i < indmin; i++) sum += arr[i];
    cout << "Summa = " << sum << endl;
    system("pause");
    delete[]arr;
    return 0;
}
//---------------------------------------------------------------------------
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2014, 19:56     Ошибка в сумме модулей элементов массива
Посмотрите здесь:

в непомерном массиве состоящем из n элементов вычислить сумму модулей элементов массива делящихся на три C++
Функция должна вычислять разницы между суммой положительных элементов массива и суммой модулей отрицательных элементов массива C++
Сортировка двумерного массива по сумме элементов строк C++
которая будет заполнить массив случайно числами, но чтобы пристутствував 0, количество элементов = 25 найти сумму модулей элементов массива после перв C++
Ввод и вывод массива целых чисел Вычислить сумму модулей элементов массива,располроженных после первого отрицательного C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
aex
88 / 77 / 29
Регистрация: 06.03.2014
Сообщений: 223
18.03.2014, 20:10     Ошибка в сумме модулей элементов массива #2
Цитата Сообщение от t1gn Посмотреть сообщение
C++
1
for(i = 0; i < indmin; i++) sum += arr[i];
ведь же надо
Цитата Сообщение от t1gn Посмотреть сообщение
расположенных после минимального по модулю элемента
а у вас с 0-вого до минимального
и надо же сумму модулей
т.е. вместе
Цитата Сообщение от t1gn Посмотреть сообщение
C++
1
for(i = 0; i < indmin; i++) sum += arr[i];
надо
C++
1
for(i = indmin; i < n; i++) sum += abs(arr[i]);
и ещё надо
Цитата Сообщение от t1gn Посмотреть сообщение
после минимального по модулю элемента
а у вас просто после минимального
Цитата Сообщение от t1gn Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
for(i = 0; i < n; i++)
   {
     if(arr[i] < min)
     {
       min = arr[i];
       indmin = i;
     }
   }
замените на
C++
1
2
3
4
5
6
7
8
for(i = 0; i < n; i++)
    {
        if(abs(arr[i]) < min)
        {
            min = abs(arr[i]);
            indmin = i;
        }
    }
Добавлено через 6 минут
виноват
Цитата Сообщение от aex Посмотреть сообщение
for(i = indmin; i < n; i++) sum += abs(arr[i]);
здесь надо начиная со следующего, т.е.
C++
1
for(i = indmin+1; i < n; i++) sum += abs(arr[i]);
fishec
 Аватар для fishec
118 / 118 / 30
Регистрация: 07.09.2013
Сообщений: 337
18.03.2014, 20:10     Ошибка в сумме модулей элементов массива #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
28
29
#include<iostream>
 
 
using namespace std;
//---------------------------------------------------------------------------
 
int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "rus");
    int n, *arr, i, indmin = 0, sum = 0;
    cout << "Razmer: "; cin >> n;
    arr = new int[n];
    cout << "Elementy: " << endl;
    for (i = 0; i < n; i++) cin >> arr[i];
    int min = abs(arr[0]);
    for (i = 0; i < n; i++)
    {
        if (abs(arr[i]) < min)
        {
            min = abs(arr[i]);
            indmin = i;
        }
    }
    for (i = indmin+1; i < n; i++) sum += abs(arr[i]);
    cout << "Summa = " << sum << endl;
    system("pause");
    delete[]arr;
    return 0;
}
aex
88 / 77 / 29
Регистрация: 06.03.2014
Сообщений: 223
18.03.2014, 20:11     Ошибка в сумме модулей элементов массива #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
#pragma hdrstop
#include <iostream>
#include <locale.h>
 
using namespace std;
//---------------------------------------------------------------------------
 
#pragma argsused
int main(int argc, char* argv[])
{
        setlocale(LC_ALL, "rus");
    int n, *arr, i, indmin = 0, sum = 0;
    cout << "Razmer: "; cin >> n;
    arr = new int[n];
    cout << "Elementy: " << endl;
    for(i = 0; i < n; i++) cin >> arr[i];
    int min=arr[0];
    for(i = 0; i < n; i++)
    {
        if(abs(arr[i]) < min)
        {
            min = abs(arr[i]);
            indmin = i;
        }
    }
    for(i = indmin+1; i < n; i++) sum += abs(arr[i]);
    cout << "Summa = " << sum << endl;
    system("pause");
    delete[]arr;
    return 0;
}
//---------------------------------------------------------------------------
t1gn
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 19
18.03.2014, 20:30  [ТС]     Ошибка в сумме модулей элементов массива #5
Спасибо
Yandex
Объявления
18.03.2014, 20:30     Ошибка в сумме модулей элементов массива
Ответ Создать тему
Опции темы

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