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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.59
palach777
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 15
#1

Возвести в квадрат все элементы одномерного массива - C++

25.09.2010, 17:15. Просмотров 3733. Ответов 16
Метки нет (Все метки)

Привет. Я в С++ начинающий и у меня такая задача: нужно возвести в квадрат введенные с клавиатуры все элементы одномерного массива. Задача не сложная, но реализовать ее все же не получается. Спасибо заранее
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2010, 17:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Возвести в квадрат все элементы одномерного массива (C++):

Четные элементы одномерного массива возвести в квадрат, а нечетные удвоить - C++
Дан одномерный массив. Четные элементы массива возвести в квадрат, а нечетные удвоить. C++

Все четные элементы массива возвести в квадрат - C++
Весь вечер ломаю моск никак не получается. Пож оч нужно для зачета!!!! 1)написать прогу, кот все четные элементы массива возводит в...

Все элементы исходного массива, стоящие на нечетных местах, возвести в квадрат, на четных местах – в куб - C++
как будет код не знаете? Дано два массива байтов, один заполнен числами. Заполнить второй массив следующим образом: все элементы...

Возвести в квадрат все нечетные элементы матрицы А(m,n) - C++
Піднести до квадрату всі непарні елементи матриці А(m,n) (m<=5, n<=4) і сформулювати із цих квадратів одновимірний масив. Возвести в...

Возвести в квадрат некоторые элементы массива - C++
Если у массива А(20) есть элемент, равный квадрату последнего элемента,то все элементы, следующие за ним, возвести в квадрат, иначе вывести...

Возвести в квадрат все локальные минимумы заданного массива - C++
Дан массив размера N. Возвести в квадрат все его локальные минимумы (т. е. числа, меньшие своих соседей).

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
25.09.2010, 17:21 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <conio.h>
 
int main()
{
    const int n = 5;
    int m[n];
    for(int i = 0; i < n; i++)
    {
    std::cout << "mass[" << i << "] = ";        
    std::cin >> m[i];
    } 
    std::cout << std::endl;
    for(int i = 0; i < n; i++)
    std::cout << m[i] * m[i] << " ";
    getch();
    return 0;
}
slava7c
0 / 0 / 0
Регистрация: 25.09.2010
Сообщений: 4
25.09.2010, 17:24 #3
Дичайшая смесь STL::io и conio - убивать за такой код ))
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
25.09.2010, 17:27 #4
Цитата Сообщение от slava7c Посмотреть сообщение
Дичайшая смесь STL::io и conio - убивать за такой код ))
А что в етом полохого,програма работае ? - работает значит всё норм!
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
25.09.2010, 17:55 #5
Решение с помощью boost::lambda
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <algorithm>
#include <iostream>
#include <boost/lambda/lambda.hpp>
 
int main() {
  int arr[] = { 1, 2, 3, 4, 5, 6 };
  
  std::for_each(arr, arr + sizeof(arr) / sizeof(arr[0]), boost::lambda::_1 *= boost::lambda::_1);
  std::for_each(arr, arr + sizeof(arr) / sizeof(arr[0]), std::cout << boost::lambda::_1 << " ");
  
  return 0;
}
Результат: http://liveworkspace.org/code/1b7914...ab4e99d6e6f459
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
25.09.2010, 17:57 #6
Цитата Сообщение от Asics^ Посмотреть сообщение
А что в етом полохого,програма работае ? - работает значит всё норм!
conio.h велосипед из далекого прошлого, а stl какбы новая веха языка
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
25.09.2010, 17:58 #7
Цитата Сообщение от Asics^ Посмотреть сообщение
работает значит всё норм!
Это плохая филоссофия оценивать программу по ее работоспособности. Ты не тестер, а программист, прекрасный код - твоя цель.
Цитата Сообщение от Asics^ Посмотреть сообщение
А что в етом полохого
Смесь Си и C++. Если нужна задержка при завершении, можно просто:
C++
1
cin.get();
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
25.09.2010, 18:06 #8
без буста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <algorithm>
#include <iostream>
#include <iterator>
 
int _gen(){ int i; cin >> i; return i; }
int _transf(const int n){ return n*n; }
 
int main() {
    int arr[6];
    std::generate( arr, arr+6, _gen );
    std::transform( arr, arr+6, arr, _transf ); 
    std::copy( arr, arr+6, ostream_iterator<int>(cout," ") );
    return 0;
}
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
25.09.2010, 19:06 #9
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Смесь Си и C++. Если нужна задержка при завершении, можно просто:
C++
1
cin.get();
А какой инклюд нужно подключить для етого ?
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
25.09.2010, 19:12 #10
Asics^, это метод cin (istream объявлен в <iostream>)
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
25.09.2010, 19:16 #11
Цитата Сообщение от Asics^ Посмотреть сообщение
А какой инклюд нужно подключить для етого ?
Для решения подобных вопросов, пользуйтесь справочными системами, например cplusplus.com. Сэкономите кучу времени.
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
25.09.2010, 19:21 #12
На етой почве возник вопрос:почему если я к своему коду(пост №2) допишу std::cin.get(); (при етом убравшы conio) один раз то консоль не задержываетсо,а если две строчки
C++
1
2
std::cin.get();
std::cin.get();
то всё работает ?
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
25.09.2010, 19:26 #13
Asics^, потому что в потоке остается символ пробела, который считывается первым cin.get'ом. Для того, чтобы этого не случалось - очищайте поток.
Либо:
C++
1
std::cout << m[i] * m[i] << std::endl;  // endl кроме перевода на новую строку еще и очищает поток
Либо:
C++
1
std::cout << m[i] * m[i] << std::flush; // flush очищает поток
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
25.09.2010, 19:55 #14
Не помогает ни flush ни endl , все равно при одном син.гете консоль закриваетсо.
palach777
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 15
25.09.2010, 22:23  [ТС] #15
Спасибо всем большое за помощь!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2010, 22:23
Привет! Вот еще темы с ответами:

Неотрицательные элементы массива уменьшить в 3 раза, остальные — возвести в квадрат - C++
Из элементов массива m сформировать мас¬сив n того же размера по правилу: неотрицательные элементы массива m уменьшить в 3 раза, остальные...

Элементы массива, которые при делении нацело на собственный индекс дают значение большее 2 возвести в квадрат - C++
Ввести одномерный массив A из N элементов. Элементы массива, которые при делении нацело на собственный индекс дают значение большее 2...

Возвести в квадрат элементы столбцов матрицы - C++
определить номера столбцов матрицы R, хотя бы один элемент которых равен d, и элементы этих столбцов возвести в квадрат .решите...

Удалить из целочисленного одномерного массива все элементы, в записи которых все цифры различны - C++
Удалить из целочисленного одномерного массива все элементы, в записи которых все цифры различны. Можете подсказать хотя бы алгоритм, ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.09.2010, 22:23
Ответ Создать тему
Опции темы

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