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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.58
Amberion
0 / 0 / 0
Регистрация: 23.12.2008
Сообщений: 8
#1

Написать программу вычисления суммы положительных элементов в каждом массиве. - C++

23.12.2008, 21:52. Просмотров 1499. Ответов 7
Метки нет (Все метки)

Люди добрые помогите в решении двух задачек, пожалуйста:

Данны два одномерных массива X и Y размерностью n и m. Написать программу вычисления суммы положительных элементов в каждом массиве.


И вторая:

Дана строка состоящая из групп нулей и единиц. Каждая группа отделяется друг от друга одним или несколькими пробелами. Найти и вывести на экран самую короткую группу.

Я в с++ чайник, по этому то что я пытался написать...вышло не совсем удачно.
Подскажите что нибудь...буду очень благодарен

Добавлено через 1 час 38 минут 45 секунд
вот тут правда есть наброски к первой задаче, только там ошибка вылезает которая мне не совсем понятна.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream.h>
#include<math.h>
#include<stdlib.h>
int main()
   {int X[] = {1,-9,3,5,7};
    int Y[] = {3,4,-10,1};
   int p,p1;
   for (int i=0; i<X; i++)
   if (X[i]>0) p=X[i]+p;
   for (int j=0; j<Y; j++)
   if (Y[j]>0) p1=Y[j]+p1;
   cout<<p<<"\n";
   cout<<p1;
cin>>p;
    return 0;}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2008, 21:52     Написать программу вычисления суммы положительных элементов в каждом массиве.
Посмотрите здесь:
Написать программу для вычисления суммы положительных элементов массива C++
C++ Написать программу ввода в массив 6x5 элементов чисел и вычисления суммы элементов полученного массива
C++ Написать программу для вычисления суммы элементов массива с нечетными номерами
C++ написать программу для вычисления суммы первых пяти элементов массива
Написать программу вычисления суммы элементов массива, используя перегрузку функций C++
C++ Перегрузка функций (написать программу вычисления суммы элементов массива разных типов)
C++ Написать программу вычисления суммы модулей
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Otaka
1823 / 679 / 18
Регистрация: 11.12.2008
Сообщений: 1,019
23.12.2008, 22:07     Написать программу вычисления суммы положительных элементов в каждом массиве. #2
Это - исправленый вариант.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream.h>
#include<math.h>
#include<stdlib.h>
int main()
{
int X[] = {1,-9,3,5,7};
int Y[] = {3,4,-10,1};
int p=0,p1=0;
for (int i=0; i<5; i++)
if (X[i]>0) p=X[i]+p;
for (int j=0; j<4; j++)
if (Y[j]>0) p1=Y[j]+p1;
cout<<p<<"\n";
cout<<p1;
cin>>p;
 
return 0;
}
Ты в цикле указал неправильное условие выхода, X не есть размером массива, а указателем на него, тоже и про цикл с Y.
И еще переменные p и p1 нужно явно инициализировать нулем
Amberion
0 / 0 / 0
Регистрация: 23.12.2008
Сообщений: 8
23.12.2008, 22:27  [ТС]     Написать программу вычисления суммы положительных элементов в каждом массиве. #3
Огромное спасибо Otaka, выручил!
А что посоветуешь насчет второй задачки? Я даже незнаю с чего начать
Otaka
1823 / 679 / 18
Регистрация: 11.12.2008
Сообщений: 1,019
24.12.2008, 13:14     Написать программу вычисления суммы положительных элементов в каждом массиве. #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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include<iostream.h>
#include<conio.h>
#include<string.h>
 
int main()
{
clrscr();
char buffer[100];
cout<<"Enter the string->";
cin.getline(buffer,100);
int len=strlen(buffer);
bool flag=false;
char gruppa[100];
char mingruppa[100];
int minlen=1000;
int posInGrup=0;
mingruppa[0]=0;
for(int i=0;i<len;i++)
        {
        if(buffer[i]!=' ')
                {
                flag=true;
                gruppa[posInGrup]=buffer[i];
                posInGrup++;
                }else
                {
                if(flag==false)continue;
                        else
                        {
                        flag=false;
                        gruppa[posInGrup]=0;
                        posInGrup=0;
                        int templen=strlen(gruppa);
                        if(templen<minlen)
                                {
                                minlen=templen;
                                strcpy(mingruppa,gruppa);
                                }
                        }
                }
        }
//А вот тут некрасивый повтор кода.
gruppa[posInGrup]=0;
posInGrup=0;
int templen=strlen(gruppa);
if(templen<minlen)
        {
        minlen=templen;
        strcpy(mingruppa,gruppa);
        }
cout<<"Minimal = "<<mingruppa;
getch();
return 0;
}
Amberion
0 / 0 / 0
Регистрация: 23.12.2008
Сообщений: 8
24.12.2008, 18:49  [ТС]     Написать программу вычисления суммы положительных элементов в каждом массиве. #5
Блин, спасибо огромнейшее, если бы мог то сто раз тебе спасибо поставил бы
Amberion
0 / 0 / 0
Регистрация: 23.12.2008
Сообщений: 8
25.12.2008, 19:16  [ТС]     Написать программу вычисления суммы положительных элементов в каждом массиве. #6
Отака! А вот с массивом еще раз...надо чтобы сам задавал размерность массива и элементы массива тоже. Как можно это провернуть?
Otaka
1823 / 679 / 18
Регистрация: 11.12.2008
Сообщений: 1,019
25.12.2008, 21:23     Написать программу вычисления суммы положительных элементов в каждом массиве. #7
Вот так?
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
#include<iostream.h>
#include<math.h>
#include<stdlib.h>
#include<conio.h>
int main()
{
int*X; //указатель на целое может использоватся для доступа к массиву int_ов
int*Y;
int p=0,p1=0;
int N;
int M;
cout<<"Vvedite razmernost massiva X->";
cin>>N;
cout<<"Vvedite razmernost massiva Y->";
cin>>M;
if(N<=0 || M<=0)
        {
        cout<<"Nedopustimye razmery";
        getch();
        return 0;
        }
 
X=new int[N];  //выделяем память под элементы
Y=new int[M];
for(int i=0;i<N;i++)
        {
        cout<<i+1<<" element massiva X -> ";
        cin>>X[i];
        }
cout<<endl;
for(int i=0;i<M;i++)
        {
        cout<<i+1<<" element massiva Y -> ";
        cin>>Y[i];
        }
 
 
 
//обрабатываем элементы
for (int i=0; i<N; i++)if (X[i]>0) p=X[i]+p;
for (int j=0; j<M; j++)if (Y[j]>0) p1=Y[j]+p1;
cout<<p<<"\n";
cout<<p1;
getch();
return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2008, 21:50     Написать программу вычисления суммы положительных элементов в каждом массиве.
Еще ссылки по теме:
Написать программу для вычисления суммы C++
C++ Написать программу для вычисления суммы f(a)+2f(a+h)+2f(a+2h)+...+2f(a+(n-1)h)+f(a+nh)
C++ Определите в двумерном числовом массиве суммы положительных и отрицательных элементов
Заменить в каждом массиве максимальный элемент средним арифметическим положительных элементов (если оно существует) соответствующего массива C++
Написать программу для вычисления суммы ряда C++

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

Или воспользуйтесь поиском по форуму:
Amberion
0 / 0 / 0
Регистрация: 23.12.2008
Сообщений: 8
25.12.2008, 21:50  [ТС]     Написать программу вычисления суммы положительных элементов в каждом массиве. #8
Спасибо тебе, Великий программист
Yandex
Объявления
25.12.2008, 21:50     Написать программу вычисления суммы положительных элементов в каждом массиве.
Ответ Создать тему
Опции темы

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