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

Снова одномерный Массив С++ - C++

Восстановить пароль Регистрация
 
Дианна
0 / 0 / 0
Регистрация: 25.01.2010
Сообщений: 4
25.01.2010, 04:34     Снова одномерный Массив С++ #1
В одномерном массиве, состоящем из n целых элементов, вычислить:
1) количество положительных элементов массива;
2) сумму элементов массива, расположенных после последнего элемента, равного нулю.
Преобразовать массив таким образом, чтобы сначала располагались все элементы целая часть которых не превышала 1, а потом - все остальные.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2010, 04:34     Снова одномерный Массив С++
Посмотрите здесь:

и снова этот массив. двумерный. C++
C++ и снова одномерный массив
Одномерный массив вещественных чисел R75 содержит данные о росте группы студентов. Массив заполнить значениями путем ввода с клавиатуры. Вычислить с C++
Одномерный массив. Найти наименьшие среди элементов первого массива, которые не входят во второй массив. C++
Массив: Построить из динамического одномерный массив,каждый элемент, которого равен сумме элементов одной строки исходной матрицы. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
25.01.2010, 04:59     Снова одномерный Массив С++ #2
1.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream>
#include<algorithm>
#include<functional>
 
int main()
{
  int arr[] = {1, 0, - 2, -4, 3, 5,};
 
  std::cout << std::count_if(arr, arr + sizeof(arr) / sizeof(arr[0]), std::bind2nd(std::greater<int>(), 0)) << std::endl;
  
  return 0;
}
Результат: http://codepad.org/xtesBfpe.
Дианна
0 / 0 / 0
Регистрация: 25.01.2010
Сообщений: 4
25.01.2010, 05:15  [ТС]     Снова одномерный Массив С++ #3
Ммм... А как нибудь можно сделать с помощью простого цикла?) Если не сложно..))
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
25.01.2010, 05:24     Снова одномерный Массив С++ #4
Нет, конечно, не сложно. Вот:
1.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
 
int main()
{
  int       arr[] = {1, 0, - 2, -4, 3, 5,};
  const int size  = sizeof(arr) / sizeof(arr[0]);
 
  int count = 0;
 
  for(int i = 0; i < size; ++i)
    if(arr[i] > 0)
      ++count;
 
  std::cout << count << std::endl;
 
  return 0;
}
Результат: http://codepad.org/jrE4Q5H6.

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
#include<iostream>
 
int main()
{
  int       arr[] = {1, 0, 0, -4, 3, 5,};
  const int size  = sizeof(arr) / sizeof(arr[0]);
 
  int last_zero_index = -1;
 
  for(int i = 0; i < size; ++i)
    if(arr[i] == 0)
      last_zero_index = i;
 
  if(last_zero_index == - 1){
    std::cout << "Array not content zero" << std::endl;
    return 0;
  }
 
  int sum = 0;
 
  for(int i = last_zero_index + 1; i < size; ++i)
    sum += arr[i];
 
  std::cout << sum << std::endl;
 
  return 0;
}
Результат: http://codepad.org/zoZUpDIZ.
Андрейка
410 / 214 / 24
Регистрация: 25.03.2009
Сообщений: 716
25.01.2010, 09:28     Снова одномерный Массив С++ #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <numeric>
#include <algorithm>
#include <functional>
#include <vector>
 
int main()
{
    setlocale(LC_ALL, "RUSSIAN");
 
    std::istream_iterator <int> _ITER1(std::cin);
    std::istream_iterator <int> _ITER2;
 
    std::vector <int> _VEC(_ITER1, _ITER2);
 
    std::cout << "сумма элементов после последнего нуля ";
    std::cout << std::accumulate (std::find_if(_VEC.rbegin(), _VEC.rend(), std::bind2nd(std::equal_to <int> (), int(0))).base(), _VEC.end(), int(0));
        
    return 0;
}
Yandex
Объявления
25.01.2010, 09:28     Снова одномерный Массив С++
Ответ Создать тему
Опции темы

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