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

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

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

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

09.01.2011, 22:48. Просмотров 627. Ответов 3
Метки нет (Все метки)

Ребят!
а можете помочь вот с такой задачкой.


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

Сортировка по возрастанию, сумма положительных и произведение отрицательных элементов массива - C++
#include &lt;stdio.h&gt; #include &lt;iostream.h&gt; main() { static float a; int i,j,sum=0,pr=1,t; cout&lt;&lt;&quot;Vvedite 6...

Сумма и количество положительных и отрицательных элементов - C++
Написать программу которая считает сумму положительных и количество отрицательных элементов массива 5*5 !!!!!!!Обращение к элементам...

Составить программу, в которой вычислить z=(s1+s2)/(k1*k2), где s1 и k1 - сумма и количество положительных элементов массива Х[N]; s1 u k2 - сумма - C++
Составить программу, в которой вычислить z=(s1+s2)/(k1*k2), где s1 и k1 - сумма и количество положительных элементов массива Х; s1 u k2 ...

Минимальный по модулю и сумма модулей элементов массива - C++
В одномерном массиве состоящим из n элементов вычислить 1 минимальный по модулю элемент массива 2 сумму модулей элементов массива...

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

Сумма отрицательных элементов массива - C++
В одномерном массиве, состоящем из nвещественных элементов, вычислить: Сумму отрицательных элементов массива

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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++)
0
Verock
0 / 0 / 0
Регистрация: 02.11.2009
Сообщений: 3
09.01.2011, 23:00  [ТС] #3
потому что здесь так int *Input (int* n). Т.е. как я передавала функции , так потом должна...
0
valeriikozlov
Эксперт C++
4670 / 2496 / 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 ()
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2011, 23:12
Привет! Вот еще темы с ответами:

Сумма отрицательных элементов массива - C++
В динамическом массиве, состоящем из n вещественных величин. А. Сумму отрицательных элементов массива В. Произведение элементов...

Сумма отрицательных элементов массива - C++
Нужно найти сумму отрицательных эл-ов массива. Не пойму где ошибки #include &lt;stdio.h&gt; #include &lt;locale.h&gt; #include &lt;math.h&gt; ...

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

Сформировать массив из положительных элементов одного массива и отрицательных элементов другого - C++
Даны массив А и массив В, в каждом по 10 элементов. Сформировать новый массив, состоящий из положительных элементов массива А и...


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

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

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