Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/120: Рейтинг темы: голосов - 120, средняя оценка - 4.66
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 15
1

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

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

Author24 — интернет-сервис помощи студентам
Привет. Я в С++ начинающий и у меня такая задача: нужно возвести в квадрат введенные с клавиатуры все элементы одномерного массива. Задача не сложная, но реализовать ее все же не получается. Спасибо заранее
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.09.2010, 17:15
Ответы с готовыми решениями:

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

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

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

Элементы массива возвести в квадрат
Целое число B в массиве. Его элементы изменить с его квадратами.

16
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 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
0 / 0 / 0
Регистрация: 25.09.2010
Сообщений: 4
25.09.2010, 17:24 3
Дичайшая смесь STL::io и conio - убивать за такой код ))
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
25.09.2010, 17:27 4
Цитата Сообщение от slava7c Посмотреть сообщение
Дичайшая смесь STL::io и conio - убивать за такой код ))
А что в етом полохого,програма работае ? - работает значит всё норм!
0
Эксперт С++
2347 / 1720 / 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/... 99d6e6f459
1
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
25.09.2010, 17:57 6
Цитата Сообщение от Asics^ Посмотреть сообщение
А что в етом полохого,програма работае ? - работает значит всё норм!
conio.h велосипед из далекого прошлого, а stl какбы новая веха языка
1
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
25.09.2010, 17:58 7
Цитата Сообщение от Asics^ Посмотреть сообщение
работает значит всё норм!
Это плохая филоссофия оценивать программу по ее работоспособности. Ты не тестер, а программист, прекрасный код - твоя цель.
Цитата Сообщение от Asics^ Посмотреть сообщение
А что в етом полохого
Смесь Си и C++. Если нужна задержка при завершении, можно просто:
C++
1
cin.get();
0
бжни
2473 / 1684 / 135
Регистрация: 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
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
25.09.2010, 19:06 9
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Смесь Си и C++. Если нужна задержка при завершении, можно просто:
C++
1
cin.get();
А какой инклюд нужно подключить для етого ?
0
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
25.09.2010, 19:12 10
Asics^, это метод cin (istream объявлен в <iostream>)
1
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
25.09.2010, 19:16 11
Цитата Сообщение от Asics^ Посмотреть сообщение
А какой инклюд нужно подключить для етого ?
Для решения подобных вопросов, пользуйтесь справочными системами, например cplusplus.com. Сэкономите кучу времени.
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 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
Эксперт С++
2347 / 1720 / 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
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
25.09.2010, 19:55 14
Не помогает ни flush ни endl , все равно при одном син.гете консоль закриваетсо.
0
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 15
25.09.2010, 22:23  [ТС] 15
Спасибо всем большое за помощь!!!
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
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
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
26.09.2010, 15:39 17
rangerx, bind на pow - оригинально
0
26.09.2010, 15:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2010, 15:39
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru