Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2012, 23:44   #1
tanyuxxxa
Пользователь
 
Регистрация: 28.02.2012
Сообщений: 38
По умолчанию Массив найти сумму модулей элементов

Мне нужно найти сумму модулей элементов расположенный после первого 0 не пойму в чем ошибка...


Код:
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream.h>
int main()
{
const int n = 20;
int a[n];
int i,kolvo;
cout << "Enter quantity of elements: \n"; cin >> kolvo;//размерность
if (kolvo>n)
{
 return 1;
}
//элементы
for ( i = 0;i < kolvo; i++) cin >> a[i];
cout <<"\n"<<endl;



{
    int flagNull = 0;
     int sumAbs = 0;

    for(i = 0; i < n; i++)
    {
		if(a[n] == 0)
        flagNull = 1;

    if(flagNull == 1)
        sumAbs += abs(a[n]);
    }

    cout<<endl<<"Сумма элементов: "<<sumAbs;

    getch();
return 0;
   
}

Последний раз редактировалось ACE Valery; 20.03.2012 в 20:20.
tanyuxxxa вне форума Ответить с цитированием
Старый 19.03.2012, 23:55   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Код:
for(i = 0; i < n; i++)
А вводите всего
Цитата:
Код:
 cin >> kolvo
Чуствуете разницу?
Ну и плюс выход за границы
Вот тут
Цитата:
Код:
sumAbs += abs(a[n]);
Суммируете постоянно какое-то там лежащее за границами значение(мусор)
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 20.03.2012, 00:16   #3
tanyuxxxa
Пользователь
 
Регистрация: 28.02.2012
Сообщений: 38
По умолчанию

Код:
#include <iostream.h>

#include <conio.h>
#include <stdlib.h>
int main()

{

int n;

cout<<"Input number:"<<endl;
cin>>n;

int *a = new int[n];

cout<<"All massiv: "<<endl;

for(int i = 0; i < n; i++)
{
a[i] = 50 - rand() % 100; // [-50; 50]
cout<<a[i]<<" ";
}


{
   
int flagNull = 0;
    int sum = 0;

    for(i = 0; i < n; i++)
    {
    if(a == 0)
        flagNull = 1;

    if(flagNull == 1)
        sum += abc(a);
    }

    cout<<endl<<"Сумма элементов: "<<sum;

    getch();

    return 0;
}
исправила но не поняла как с суммой поступить...

Последний раз редактировалось ACE Valery; 20.03.2012 в 20:21.
tanyuxxxa вне форума Ответить с цитированием
Старый 20.03.2012, 00:18   #4
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

В корне не правильно исправили!
Цитата:
Код:
if(a == 0)
проверка адреса на ноль.....
Цитата:
Код:
sum += abc(a);
Увеличиваете на значение адреса
Всё в корне не так
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 20.03.2012, 00:22   #5
tanyuxxxa
Пользователь
 
Регистрация: 28.02.2012
Сообщений: 38
По умолчанию

да..(((тяжело мне дается это...
tanyuxxxa вне форума Ответить с цитированием
Старый 20.03.2012, 00:28   #6
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Не бойся того, что не знаешь, бойся того, что не учишь
(c) Конфуций
Вот разбирайтесь!
Код:
#include <iostream.h>

int main()
{
     const int n = 20;
     int a[n];
     int kolvo;
     int flagNull = 0;
     int sumAbs = 0;
     cout << "Enter quantity of elements: " << endl; 
     cin >> kolvo;
     if (kolvo>n)
     {
           return 1;
     }
     for (int i = 0;i < kolvo; i++) 
          cin >> a[i];
     cout << endl;
     for(int i = 0; i < kolvo; i++)
     {
         if(a[i] == 0)
              flagNull = 1;
         if(flagNull == 1)
              sumAbs += abs(a[i]);
     }
     cout<<endl<<"Сумма элементов: "<<sumAbs << endl;
     cin.ignore();
     cin.get();
     return 0;
}
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 20.03.2012, 00:37   #7
tanyuxxxa
Пользователь
 
Регистрация: 28.02.2012
Сообщений: 38
По умолчанию

До сих пор не понимаю почему abc необъявленый идентификатор?Спасибо...
tanyuxxxa вне форума Ответить с цитированием
Старый 20.03.2012, 02:22   #8
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

я math.h забыл подключить
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан двумерный массив. Найти сумму и количество элементов в каждом столбце, положительных и лежащих вне главной диагонали Alexbmgn Помощь студентам 1 25.12.2011 22:21
массив R(N,M) - найти сумму кубов отрицательных элементов, минимальный элемент столбца № (Бейсик) Люстик Помощь студентам 0 16.03.2011 17:29
в сглаженой матрице найти сумму модулей элементов расположенных ниже главной диагонали Sergeo_89 Паскаль, Turbo Pascal, PascalABC.NET 8 07.12.2010 00:02
Как найти наименьшее из значений элементов столбца, который обладает наибольшей суммой модулей элементов INFINITIFX Общие вопросы C/C++ 2 11.11.2010 09:55
МАССИВ.НАЙТИ СУММУ ОТРИЦАТ.ЭЛЕМЕНТОВ андрей е. Общие вопросы C/C++ 10 21.04.2010 02:57