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

Сума четных елементов и т.д. - C++

Восстановить пароль Регистрация
 
wildfires
1 / 1 / 0
Регистрация: 09.01.2012
Сообщений: 114
13.03.2012, 21:54     Сума четных елементов и т.д. #1
Здравствуйте, нужно сделать такое задание:
1) нужно создать числовой файл из случайных чисел
2) организовать его просмотр
3) найти сумму четных, не четных, положительных, и отрицательных елементов.
1 и 2 я сделал.
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 <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
FILE *f;
int d,n;char name[20];
void stv(void)
{cout<<"Vvedite kilkist elementiv\n";
cin>>n;
if ((f=fopen(name,"w"))==NULL) {perror("File exist");getch();
                                exit(1);}
randomize();
for(int i=0;i<n;i++)
{d=random(100)-20;
fprintf(f,"%d ",d);}
cout<<"File stvoren";
getch();
fclose(f);}
void per(void)
{if ((f=fopen(name,"r"))==NULL) {cout<<"File not exist";getch();
exit(1);}
cout<<"\nFile:\n";
while (!feof(f))
{fscanf(f,"%d ",&d);
cout<<d<<" "; }
fclose(f);
getch();}
 
 
void main(void)
{int a;
cout<<"Vvedite imya fila\n";
cin>>name;
while (1)
 {clrscr();
cout<<"Create file1\nWatch file 2\n";
cin>>a;
switch (a)
{case 1:{stv();break;}
case 2:{per();break;}
case 3:exit(1);
default: {cout<<"\nNe vveden regim";getch();} } }}
А вот с 3 заданием не очень получается, помогите хотя бы найти сумму одних элементов, например четных, а дальше я уже сам разберусь. Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2012, 21:54     Сума четных елементов и т.д.
Посмотрите здесь:

C++ Сума значений Функции
Максимальная сума C++
сума ряда C++
Сума цифр веденного числа N C++
Масив сума сортировка C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
x1Mike7x
 Аватар для x1Mike7x
214 / 127 / 6
Регистрация: 06.11.2010
Сообщений: 234
13.03.2012, 21:59     Сума четных елементов и т.д. #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int s_neg = 0, s_pos = 0, s_odd = 0, s_even = 0;
while (!feof(f))
{
    fscanf(f,"%d ",&d);
 
    if ( d > 0 )          // позитивные
        s_pos += d;
    else if ( d < 0 )    // негативные
        s_neg += d;
 
    if ( d % 2 == 0 )   // чётные
        s_even += d;
    else                    // нечетные
        s_odd += d;
}
cout << "Сумма чётных:" << s_even << endl;
cout << "Сумма негативных:" << s_neg << endl;
... // и т.д.
wildfires
1 / 1 / 0
Регистрация: 09.01.2012
Сообщений: 114
14.03.2012, 18:09  [ТС]     Сума четных елементов и т.д. #3
x1Mike7x, благодарю.
Теперь возник вопрос, а как найти разницу положительных элементов. Нам же уже нужно не от ноля отнимать (как мы это делали при поиске сумы, мы прибавляли к 0 все значения >0), а тут же нужно отнимать от первого положительного числа.
x1Mike7x
 Аватар для x1Mike7x
214 / 127 / 6
Регистрация: 06.11.2010
Сообщений: 234
14.03.2012, 18:45     Сума четных елементов и т.д. #4
Что подразумевается под разницей положительных элементов? Если a0 - a1 - a2 - a3 - ..., то
C++
1
2
3
4
5
6
7
8
9
10
int res = 0, k = 1;
while ( !feof(f) )
{
    fscanf( f, "%d", d );
    if ( d > 0 )
    {
        res += k * d;
        k = -1;
    }
}
Первый положительный элемент прибавится в res, а все остальные будут отниматься, потому что мы умножаем их на -1.
Yandex
Объявления
14.03.2012, 18:45     Сума четных елементов и т.д.
Ответ Создать тему
Опции темы

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