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

Вычислить количество положительных элементов массива - C++

Восстановить пароль Регистрация
 
Ap
Сообщений: n/a
11.06.2011, 11:20     Вычислить количество положительных элементов массива #1
Ребята ,помогите пожалуйста.

В одномерном массиве, состоящем из n целых элементов вычислить:
1. количество положительных элементов;
2. сумму элементов, расположенных после последнего элемента, равного нулю.

Преобразовать массив так, чтобы сначала располагались все элементы, целая часть которых не превышает 1, а потом – все остальные
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2011, 11:20     Вычислить количество положительных элементов массива
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
11.06.2011, 18:44     Вычислить количество положительных элементов массива #2
Цитата Сообщение от Ap Посмотреть сообщение
В одномерном массиве, состоящем из n целых элементов вычислить:
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
#include <iostream>
#include <algorithm>
#include <functional>
#include <numeric>
#include <time.h>
 
int myrandom()
{       return  rand() % 41 - 20;
}
  
int main()
{
    const int N = 20;
    int arr[N],
        sum = 0,
        pos_cnt = 0,
        zero = 0;
 
    srand(time(NULL));
    std::generate(arr, arr+N, myrandom);
 
    pos_cnt = std::count_if(
        arr,
        arr+N,
        std::bind2nd(std::greater<int>(), 0));
 
    sum = std::accumulate(
        std::find_end(arr, arr+N, &zero, &zero+1),
        arr+N,
        sum);
 
    std::cout << "Array: ";
    std::copy(arr, arr+N, std::ostream_iterator<int>(std::cout, " "));
    std::cout << "\n" << "Number of positive elements: " << pos_cnt;
    std::cout << "\n" << "Sum of elements following last zero: " << sum << std::endl;
    return 0;
}
Scythian
 Аватар для Scythian
58 / 58 / 8
Регистрация: 01.01.2010
Сообщений: 222
11.06.2011, 19:33     Вычислить количество положительных элементов массива #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
вот мой вариант, аматорский))

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
#include<iostream.h>
#include<conio.h>
//---------------------------------------------------------------------------
 
main()
{
     int n,
        *mas,
         sum=0,
         kol=0;
 cin>>n;
 mas=new int[n];
 for(int i=0;i<n;i++)
        {
         cin>>mas[i];
         if(mas[i]>0)
             kol++;
        }
 for(int i=n-1;i>-1;i--)
        if(mas[i]==0)
            {  for(int j=i;j<n;j++)
                sum+=mas[j];
               break;
            }
 cout<<"Pologitelnie elementi "<<kol<<" shtuk\n"<<"Summa "<<sum;
 delete[]mas;
 getch();
 return 0;
}
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
11.06.2011, 19:52     Вычислить количество положительных элементов массива #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Если я правильно понял задание
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
int main(){
    int arr[]={1,2,3,4,5,6,0,2,3,2,-5},size=sizeof(arr)/sizeof(*arr),zero,count=0,sum=0,j=0;
    int * newarr = new int[size];
    for (int i=0; i < size; i++){
        if (arr[i] > 0) count++;
        if (!arr[i]) zero=i;
        if (arr[i] <= 1) newarr[j++]=arr[i];
    }
    while (++zero < size)
        sum+=arr[zero];
    for (int i=0; i < size; i++)
        if (arr[i] > 1) newarr[j++]=arr[i];
    for (int i=0; i <size; i++)
        arr[i]=newarr[i];
    delete[] newarr;
    std::cout << count << std::endl << sum << std::endl;
    for (int i=0; i < size; i++)
        std::cout << arr[i] << ' '; 
    return 0;
}
DaniilSPB
7 / 7 / 3
Регистрация: 10.02.2011
Сообщений: 17
11.06.2011, 21:40     Вычислить количество положительных элементов массива #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот*мой*на C:
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
#include <stdio.h>
 
int main()
{
  const n = 10;
  int arr[n],i,am,sumn,true;
  srand(time(NULL));
  printf("Array at the beginning:\n ");
  true = 0;
  for(i=0;i<=n;i++)
  {
  arr[i]= -10 + rand()%20;
  sumn = sumn + arr[i];
  if(arr[i]>0)
  {
  am++;
  }
  if (arr[i] == 0)
   {
   true = 1;
   sumn = 0;
   }
  printf("%d ",arr[i]);
  }
 printf(" \n"); 
 if(true == 0)
 {
 sumn = 0;
 }
 printf("Amount of positive elements:%d\n",am);
 printf("Sum of all elements after last 0:%d\n",sumn);
 printf("Sorted array:");
 for(i=1;i<=n;i++)
 {
 if(arr[i]<1)
 {
 printf("%d ",arr[i]);
 }
 }
 for(i=1;i<=n;i++)
 {
 if(arr[i]>1)
 {
 printf("%d  ",arr[i]);
 }
 }
 return 0;
}
Yandex
Объявления
11.06.2011, 21:40     Вычислить количество положительных элементов массива
Ответ Создать тему
Опции темы

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