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

Сумма положительных и отрицательных по модулю элементов массива - C++

Восстановить пароль Регистрация
 
Verock
0 / 0 / 0
Регистрация: 02.11.2009
Сообщений: 3
09.01.2011, 22:48     Сумма положительных и отрицательных по модулю элементов массива #1
Ребят!
а можете помочь вот с такой задачкой.


вот условие:
Дан массив С. получить и напечатать значение переменной Fl по следующему правилу:
Fl=1, если сумма положительных элементов массива больше суммы отрицательных элементов по модулю, в противном случае Fl=0.

здесь у меня заглюк в том, что после компиляции у меня сумма полодительных и отрицательных элементов - очень страшные не в тему числа... из серии -8539945...

Просто хотеа , что бы кто нибудь проверил...в чём дело...

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
99
100
#include <iostream>
#include <conio.h>
#include <math.h>
 
using namespace std;
 
int *Input (int* n)
{int* C;
 int i;
 
 cout << " Razmer massiva: \n";
cin>>*n;
C = new int [*n];
if (C==NULL) {cout << "ne xvataet pamjati!";
exit(1);}
 
cout << "Vvod elementov massiva: \n";
for (i=0; i<*n; i++)
cin >> *(C+i);
 
return C;
}
 
void SumPol(int *C,int n)
{   
    int k;
    int Sum1;
    k=1;
    Sum1=0;
    
        for (int i=0; i<n; i++){ 
        
                if (*(C+i)>0)
                    Sum1=Sum1+*(C+i);
                k=k+1;}
        
}
 
void SumOtr (int *C, int n)
{
 int l;
 int Sum2;
 l=1;
 Sum2=0;
 
 
 for (int i=0; i<n; i++)
 { if (*(C+i)<=0)
 Sum2=abs(Sum2+*(C+i));}
   
 l=l+1;
 
 
}
 
void vyvodFl (int* C, int n)
{
 int Fl;
 
  int Sum1;
  int Sum2;
  SumPol(&Sum1,n);
cout<< "Summa polojitel'nyx elementov: \n"<<Sum1<<endl;
SumOtr (&Sum2,n);
cout << cout <<"Summa otricatel'nyx elementov: \n"<<Sum2<<endl;
 
for (int i=0; i<n;i++)
     
 {if (Sum1>Sum2) 
     Fl=1;
 else 
     Fl=0;}
 cout << "Fl= "<<Fl;
 
}
 
 
 
 
 
  void Output (int *C,int n)
  {  int i;
     for (i=0; i<n; i++)
         cout <<"element "<<i<<": "<<*(C+i)<<endl;
     
  }
 
 
 
 
 
void main (void)
{ int *masC,nmasC;
masC=Input(&nmasC);
Output (masC,nmasC);
SumPol (masC,nmasC);
SumOtr (masC,nmasC);
vyvodFl (masC,nmasC);
 
getch();}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2011, 22:48     Сумма положительных и отрицательных по модулю элементов массива
Посмотрите здесь:

Сумма отрицательных элементов массива C++
Сумма отрицательных элементов массива C++
C++ Сумма отрицательных элементов массива
Сумма и количество положительных и отрицательных элементов C++
C++ Минимальный по модулю и сумма модулей элементов массива
Сортировка по возрастанию, сумма положительных и произведение отрицательных элементов массива C++
C++ Среди отрицательных элементов целочисленного массива найти максимальный по модулю
C++ Сформировать массив из положительных элементов одного массива и отрицательных элементов другого

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kenwood2010
48 / 59 / 7
Регистрация: 26.11.2010
Сообщений: 192
09.01.2011, 22:53     Сумма положительных и отрицательных по модулю элементов массива #2
*n - а зачем так делаешь?
C++
1
2
cin>>*n;
for (i=0; i<*n; i++)
Verock
0 / 0 / 0
Регистрация: 02.11.2009
Сообщений: 3
09.01.2011, 23:00  [ТС]     Сумма положительных и отрицательных по модулю элементов массива #3
потому что здесь так int *Input (int* n). Т.е. как я передавала функции , так потом должна...
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
09.01.2011, 23:12     Сумма положительных и отрицательных по модулю элементов массива #4
Verock, Смотрите:
C++
1
2
3
4
5
6
7
8
9
void main (void)
{ int *masC,nmasC;
masC=Input(&nmasC);
Output (masC,nmasC);
SumPol (masC,nmasC);// эта функция вычисляет сумму и кол-во положительных элементов, но эти значения никак не возвращает и не выводит на печать
SumOtr (masC,nmasC);// эта функция вычисляет сумму и кол-во отрицательных элементов, но эти значения никак не возвращает и не выводит на печать
vyvodFl (masC,nmasC);// а эту функцию рассмотрим ниже отдельно
 
getch();}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void vyvodFl (int* C, int n)
{
 int Fl;
 
  int Sum1;// значения не определено для этой переменной
  int Sum2;
  SumPol(&Sum1,n);// вместо положенного указателя на массив Вы передаете адрес переменной Sum1, но все равно значение Sum1 не изменится
cout<< "Summa polojitel'nyx elementov: \n"<<Sum1<<endl;// естественно выводится "очень страшные"
SumOtr (&Sum2,n);// то же самое
cout << cout <<"Summa otricatel'nyx elementov: \n"<<Sum2<<endl;// то же самое
 
for (int i=0; i<n;i++)
     
 {if (Sum1>Sum2) 
     Fl=1;
 else 
         Fl=0;}
 cout << "Fl= "<<Fl;
 
}
Сделайте например что бы SumOtr () и SumPol() возвращали значения сумм и воспользуйтесь этим в функции vyvodFl ()
Yandex
Объявления
09.01.2011, 23:12     Сумма положительных и отрицательных по модулю элементов массива
Ответ Создать тему
Опции темы

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