#include <ctime>
#include <iostream>
#include <algorithm>
#include <functional>
using namespace std;
int rop() { return rand() % 51 - 25; }
int top(int x) { return x < 0? x * x : x; }
int main() {
srand(time(0));
int a[10];
generate_n(a, 10, rop);
cout << "исходный массив: ";
for (int c = 0; c < 10; ++c) cout << ' ' << a[c];
cout << "\nотрицательных эл-тов: " << count_if(a, a + 10, bind2nd(less<int>(), 0));
transform(a, a + 10, a, top);
cout << "\nпреобразованный массив: ";
for (int c = 0; c < 10; ++c) cout << ' ' << a[c];
return 0;
}
ЗЫ:
> Терентий Резман
> while(true){
> int i;
> std::cin >> i;
> if(!std::cin)
> break;
>
> v.push_back(i);
> }
Зачем все так усложнять? Достаточно:
int i;
while (cin >> i) v.push_back(i);
Другие языки программирования и технологии
(плиз решите на С++) Количество отрицательных элементов массива и заменить эти элементы их квадратами. Одномерный масси
int m[10]; // пусть есть массив из 10 элементов
int n=0; // кол. отр. эл. = 0
// цикл поиска и замен для всех 10 элементов
for(int i=0; i<10; i++){
if(m[ i ] < 0) { // если нашли отр. элемент
m[ i ] = m[ i ] * m[ i ]; // заменяем квадратом
n++; // эквивалентно n=n+1; подсчет отр. элементов
}
}
УДАЧИ В ЖИЗНИ !!!
int n=0; // кол. отр. эл. = 0
// цикл поиска и замен для всех 10 элементов
for(int i=0; i<10; i++){
if(m[ i ] < 0) { // если нашли отр. элемент
m[ i ] = m[ i ] * m[ i ]; // заменяем квадратом
n++; // эквивалентно n=n+1; подсчет отр. элементов
}
}
УДАЧИ В ЖИЗНИ !!!
const int size = 5;
int arr[size];
int negCount = 0;
// Ввод данных в массив
for (int i = 0 ; i < size ; i++)
{
....cout << "Enter arr[" << i << "] = "; cin >> arr [ i ];
}
// Подсчет и замена отрицательных эл-тов
for (int i = 0 ; i < size ; i++)
{
....if (arr [ i ] <0)
....{
....negCount++;
....arr [ i ] = arr [ i ] * arr [ i ] ;
....}
}
// Вывод итогового массива
for (int i = 0 ; i < size ; i++)
{
....cout << " | " << arr [ i ];
}
// Вывод количества отрицательных элементов
cout << endl << "Count of negative elements is " << negCount;
P.S.
Почти один-к-одному написали))
int arr[size];
int negCount = 0;
// Ввод данных в массив
for (int i = 0 ; i < size ; i++)
{
....cout << "Enter arr[" << i << "] = "; cin >> arr [ i ];
}
// Подсчет и замена отрицательных эл-тов
for (int i = 0 ; i < size ; i++)
{
....if (arr [ i ] <0)
....{
....negCount++;
....arr [ i ] = arr [ i ] * arr [ i ] ;
....}
}
// Вывод итогового массива
for (int i = 0 ; i < size ; i++)
{
....cout << " | " << arr [ i ];
}
// Вывод количества отрицательных элементов
cout << endl << "Count of negative elements is " << negCount;
P.S.
Почти один-к-одному написали))
человек с массивом справиться не может, а Вы ей вектора пихаете...
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
std::vector<int> v;
// вводим числа через пробел
// сколько хотим,
// по окончании ввода нажимаем Ctrl + Z и затем Enter
while(true){
int i;
std::cin >> i;
if(!std::cin)
break;
v.push_back(i);
}
int count = 0;
std::for_each(v.begin(), v.end(), [&count](int &elem){
if(elem < 0){
elem *= elem;
count++;
}
});
std::cout << "count = " << count << "\n"
<< "array:\n";
std::for_each(v.begin(), v.end(), [](int elem){
std::cout << elem << " ";
});
}
#include <vector>
#include <algorithm>
int main()
{
std::vector<int> v;
// вводим числа через пробел
// сколько хотим,
// по окончании ввода нажимаем Ctrl + Z и затем Enter
while(true){
int i;
std::cin >> i;
if(!std::cin)
break;
v.push_back(i);
}
int count = 0;
std::for_each(v.begin(), v.end(), [&count](int &elem){
if(elem < 0){
elem *= elem;
count++;
}
});
std::cout << "count = " << count << "\n"
<< "array:\n";
std::for_each(v.begin(), v.end(), [](int elem){
std::cout << elem << " ";
});
}
Похожие вопросы
- Помогите с массивами! Найти и вывести на экран сумму нечётных элементов массива и количество отрицательных.
- Вычислить сумму элементов массива, расположенных между первым и вторым отрицательными элементами - C++
- Плиз помогите!!! В массиве А размерностью nxm Найти сумму и количество всех элементов массива.
- Поиск наибольшего отрицательного элемента массива (c++) и его удаление, написал программу, где то косячек =/
- Двумерный массив/Турбо паскаль/нужна помощь=( А(12)Заменить отрицательные элементы стоящие на чётных местах цифрой 8.
- C++ Нужно вычислить сумму элементов массива, расположенных между первым и последним отрицательными элементами.
- Отсортировать отрицательные элементы массива по убыванию, пропуская положительные и нули. Вывести массив до и после сорт
- Поменять местами первый и последний отрицательные элементы массива B (18). (Язык Си) (Язык Си)
- дана целочисленная матрица размера mxm. определить числа b1,b2,...bm,каждое из которых равно количеству четных элементов
- как найти количество максимальных элементов в массиве? на асемблере. на асемблере