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

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

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

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

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

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

Все четные элементы массива возвести в квадрат C++
C++ Если последний элемент массива положителен, то все элементы массива увеличить на квадрат его максимального элемента
Возвести в квадрат все нечетные элементы матрицы А(m,n) C++
C++ Возвести в квадрат элементы столбцов матрицы
C++ Неотрицательные элементы массива уменьшить в 3 раза, остальные — возвести в квадрат
C++ Удалить из целочисленного одномерного массива все элементы, в записи которых все цифры различны
Возвести в квадрат некоторые элементы массива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
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
Эксперт C++
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
25.09.2010, 17:27     Возвести в квадрат все элементы одномерного массива #4
Цитата Сообщение от slava7c Посмотреть сообщение
Дичайшая смесь STL::io и conio - убивать за такой код ))
А что в етом полохого,програма работае ? - работает значит всё норм!
CyBOSSeR
Эксперт C++
2298 / 1668 / 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
бжни
2443 / 1648 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
25.09.2010, 17:57     Возвести в квадрат все элементы одномерного массива #6
Цитата Сообщение от Asics^ Посмотреть сообщение
А что в етом полохого,програма работае ? - работает значит всё норм!
conio.h велосипед из далекого прошлого, а stl какбы новая веха языка
CyBOSSeR
Эксперт C++
2298 / 1668 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
25.09.2010, 17:58     Возвести в квадрат все элементы одномерного массива #7
Цитата Сообщение от Asics^ Посмотреть сообщение
работает значит всё норм!
Это плохая филоссофия оценивать программу по ее работоспособности. Ты не тестер, а программист, прекрасный код - твоя цель.
Цитата Сообщение от Asics^ Посмотреть сообщение
А что в етом полохого
Смесь Си и C++. Если нужна задержка при завершении, можно просто:
C++
1
cin.get();
alex_x_x
бжни
2443 / 1648 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
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
Эксперт C++
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
25.09.2010, 19:06     Возвести в квадрат все элементы одномерного массива #9
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Смесь Си и C++. Если нужна задержка при завершении, можно просто:
C++
1
cin.get();
А какой инклюд нужно подключить для етого ?
alex_x_x
бжни
2443 / 1648 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
25.09.2010, 19:12     Возвести в квадрат все элементы одномерного массива #10
Asics^, это метод cin (istream объявлен в <iostream>)
CyBOSSeR
Эксперт C++
2298 / 1668 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
25.09.2010, 19:16     Возвести в квадрат все элементы одномерного массива #11
Цитата Сообщение от Asics^ Посмотреть сообщение
А какой инклюд нужно подключить для етого ?
Для решения подобных вопросов, пользуйтесь справочными системами, например cplusplus.com. Сэкономите кучу времени.
asics
Freelance
Эксперт C++
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
25.09.2010, 19:21     Возвести в квадрат все элементы одномерного массива #12
На етой почве возник вопрос:почему если я к своему коду(пост №2) допишу std::cin.get(); (при етом убравшы conio) один раз то консоль не задержываетсо,а если две строчки
C++
1
2
std::cin.get();
std::cin.get();
то всё работает ?
CyBOSSeR
Эксперт C++
2298 / 1668 / 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
Эксперт C++
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
25.09.2010, 19:55     Возвести в квадрат все элементы одномерного массива #14
Не помогает ни flush ни endl , все равно при одном син.гете консоль закриваетсо.
palach777
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 15
25.09.2010, 22:23  [ТС]     Возвести в квадрат все элементы одномерного массива #15
Спасибо всем большое за помощь!!!
rangerx
1923 / 1532 / 139
Регистрация: 31.05.2009
Сообщений: 2,895
26.09.2010, 15:25     Возвести в квадрат все элементы одномерного массива #16
Для разнообразия ещё два варианта )
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <valarray>
 
int main()
{
    std::valarray<double> arr(5);
    for(size_t i = 0; i < arr.size(); ++i)  std::cin >> arr[i];
    arr = pow(arr, 2.0);
    for(size_t i = 0; i < arr.size(); ++i)  std::cout << arr[i] << ' ';
    std::cout << std::endl;
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <algorithm>
#include <cmath>
 
int main()
{
    const size_t n = 5;
    double arr[n];
    for(size_t i = 0; i < n; ++i)  std::cin >> arr[i];
    std::transform( arr, arr+n, arr, std::bind2nd(std::ptr_fun<double, double, double>(pow), 2.0) );
    for(size_t i = 0; i < n; ++i)  std::cout << arr[i] << ' ';
    std::cout << std::endl;
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2010, 15:39     Возвести в квадрат все элементы одномерного массива
Еще ссылки по теме:

C++ Возвести в квадрат все локальные минимумы заданного массива
Все элементы исходного массива, стоящие на нечетных местах, возвести в квадрат, на четных местах – в куб C++
Четные элементы одномерного массива возвести в квадрат, а нечетные удвоить C++
C++ Удалить из списка отрицательные элементы, а положительные возвести в квадрат
C++ Элементы массива, которые при делении нацело на собственный индекс дают значение большее 2 возвести в квадрат

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

Или воспользуйтесь поиском по форуму:
alex_x_x
бжни
2443 / 1648 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
26.09.2010, 15:39     Возвести в квадрат все элементы одномерного массива #17
rangerx, bind на pow - оригинально
Yandex
Объявления
26.09.2010, 15:39     Возвести в квадрат все элементы одномерного массива
Ответ Создать тему
Опции темы

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