Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
palach777
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 15
1

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

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

Привет. Я в С++ начинающий и у меня такая задача: нужно возвести в квадрат введенные с клавиатуры все элементы одномерного массива. Задача не сложная, но реализовать ее все же не получается. Спасибо заранее

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2010, 17:15
Ответы с готовыми решениями:

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

Все четные элементы массива возвести в квадрат
Весь вечер ломаю моск никак не получается. Пож оч нужно для зачета!!!! ...

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

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

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

16
asics
Freelance
Эксперт С++
2858 / 1793 / 355
Регистрация: 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;
}
2
slava7c
0 / 0 / 0
Регистрация: 25.09.2010
Сообщений: 4
25.09.2010, 17:24 3
Дичайшая смесь STL::io и conio - убивать за такой код ))
0
asics
Freelance
Эксперт С++
2858 / 1793 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
25.09.2010, 17:27 4
Цитата Сообщение от slava7c Посмотреть сообщение
Дичайшая смесь STL::io и conio - убивать за такой код ))
А что в етом полохого,програма работае ? - работает значит всё норм!
0
CyBOSSeR
Эксперт С++
2311 / 1684 / 148
Регистрация: 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/1b7914b18380b34077ab4e99d6e6f459
1
alex_x_x
бжни
2455 / 1661 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
25.09.2010, 17:57 6
Цитата Сообщение от Asics^ Посмотреть сообщение
А что в етом полохого,програма работае ? - работает значит всё норм!
conio.h велосипед из далекого прошлого, а stl какбы новая веха языка
1
CyBOSSeR
Эксперт С++
2311 / 1684 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
25.09.2010, 17:58 7
Цитата Сообщение от Asics^ Посмотреть сообщение
работает значит всё норм!
Это плохая филоссофия оценивать программу по ее работоспособности. Ты не тестер, а программист, прекрасный код - твоя цель.
Цитата Сообщение от Asics^ Посмотреть сообщение
А что в етом полохого
Смесь Си и C++. Если нужна задержка при завершении, можно просто:
C++
1
cin.get();
0
alex_x_x
бжни
2455 / 1661 / 134
Регистрация: 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;
}
1
asics
Freelance
Эксперт С++
2858 / 1793 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
25.09.2010, 19:06 9
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Смесь Си и C++. Если нужна задержка при завершении, можно просто:
C++
1
cin.get();
А какой инклюд нужно подключить для етого ?
0
alex_x_x
бжни
2455 / 1661 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
25.09.2010, 19:12 10
Asics^, это метод cin (istream объявлен в <iostream>)
1
CyBOSSeR
Эксперт С++
2311 / 1684 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
25.09.2010, 19:16 11
Цитата Сообщение от Asics^ Посмотреть сообщение
А какой инклюд нужно подключить для етого ?
Для решения подобных вопросов, пользуйтесь справочными системами, например cplusplus.com. Сэкономите кучу времени.
0
asics
Freelance
Эксперт С++
2858 / 1793 / 355
Регистрация: 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();
то всё работает ?
0
CyBOSSeR
Эксперт С++
2311 / 1684 / 148
Регистрация: 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 очищает поток
1
asics
Freelance
Эксперт С++
2858 / 1793 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
25.09.2010, 19:55 14
Не помогает ни flush ни endl , все равно при одном син.гете консоль закриваетсо.
0
palach777
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 15
25.09.2010, 22:23  [ТС] 15
Спасибо всем большое за помощь!!!
0
rangerx
1944 / 1553 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
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;
}
1
alex_x_x
бжни
2455 / 1661 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
26.09.2010, 15:39 17
rangerx, bind на pow - оригинально
0
26.09.2010, 15:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2010, 15:39

Цикл: все отрицательные элементы последовательности возвести в квадрат и найти их сумму
Дана последовательность из М чисел. Все отрицательные среди них числа возвести...

Возвести в квадрат все локальные минимумы заданного массива
Дан массив размера N. Возвести в квадрат все его локальные минимумы (т. е....

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


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

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