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

Найти все элементы массива, которые являются точными квадратами, и посчитать их произведение - C++

Восстановить пароль Регистрация
 
nata95
 Аватар для nata95
1 / 1 / 0
Регистрация: 05.01.2014
Сообщений: 102
04.05.2014, 10:09     Найти все элементы массива, которые являются точными квадратами, и посчитать их произведение #1
Помогите пожалуйста, исправьте ошибку

Дано линейный массив действительных чисел. Найти все элементы данного массива, которые являются точными квадратами и посчитать их произведение
Все шаги реализуются в виде функции. Функции должны содержать параметры. Одна функция один шаг. Главная функция должна содержать только вызовы функций.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include<iostream>
#include<math.h>
#include<time.h>
 
using namespace std;
 
void print_mas (int *a, int p)
{
    for(int i=0; i<0; i++)
    cout<<a[i];
    cout<< endl;
}
void fill_mas(int *a, int n)
{
    srand((unsigned)time(0));
    for(int i=0; i<n; i++)
    a[i]=rand()%100-50;
}
int multipl_squares(int*a, int n)
{
    int p=0;
    for(int i=0;i<n;i++)
    if(a[i]==(int)sqrt(a[i])*(int)sqrt(a[i]))
    p*=a[i];
    return p;
}
int main()
{
    int p;
    cin>>p;
    int mas[p];
    fill_mas(mas, p);
    print_mas(mas, p);
    cout<<multipl_squares(mas, p)<<endl;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2014, 10:09     Найти все элементы массива, которые являются точными квадратами, и посчитать их произведение
Посмотрите здесь:

C++ Являются ли элементы 1-го, квадратами элементов 2-го массива?
Удалить из массива все элементы, которые не являются однозначными или двухзначными. C++
Создать массив из элементов другого массива, которые являются полными квадратами C++
C++ Найти произведение чисел, которые не превосходят 4000 и являются полными квадратами некоторого натурального числа
Найти среди чисел те, которые являются квадратами некоторого числа n C++
C++ Найти Среди чисел те, которые являются квадратами некоторого числа т
Найти все трехзначные парные числа, которые являются точными квадратами C++
Найти все элементы данного массива, которые являются точными квадратами и посчитать их произведение C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2133 / 966 / 222
Регистрация: 30.11.2013
Сообщений: 3,231
04.05.2014, 10:34     Найти все элементы массива, которые являются точными квадратами, и посчитать их произведение #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// Дано линейный массив действительных чисел. Найти все элементы данного массива, 
//    которые являются точными квадратами и посчитать их произведение
// Все шаги реализуются в виде функции. Функции должны содержать параметры. Одна функция один шаг. Главная функция должна содержать только вызовы функций.
#include<iostream>
#include<math.h>
#include<ctime>
 
using namespace std;
 
void print_mas (int arr[], int p)
{
    for(int i=0; i<p; i++)
        cout << arr[i] << " ";
    cout << endl;
    
}
void fill_mas(int arr[], int n)
{
    srand(time(0));
    for(int i=0; i<n; i++)
        arr[i] = rand()%100 - 50;
}
int multipl_squares(int arr[], int n)
{
    int p=1;
    for(int i=0;i<n;i++)
    {
        if(arr[i] == 0 || arr[i] == 1)
                continue;
        int x = sqrt(arr[i]);
        if( arr[i] == (int)(x*x) )
        {
            p *= arr[i];
        }
            
    }
             
 
    if(p == 1)
        return 0;
    else
     return p;
}
int main()
{
    int p;
    cin>>p;
    int mas[255] = {}; // статический массив должен иметь статический размер, это не может быть переменная с модифицируемым значение
    fill_mas(mas, p);
    print_mas(mas, p);
    cout<<multipl_squares(mas, p)<<endl;
}
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
04.05.2014, 11:11     Найти все элементы массива, которые являются точными квадратами, и посчитать их произведение #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <cmath>
 
bool sqr (double data)
{
    double fpart,intpart;
    fpart = std::modf(sqrt(data),&intpart);
    return (fpart==0.0) ? true:false;
}
 
double multypl (double *mas, int size)
{
    double p = 1.0;
    for (int i=0; i<size; i++)
        if (sqr(mas[i]))
            p*=mas[i];
    return p;
}
 
int main()
{
    const int n = 7;
    double a[n]={1.0, 5.6, 16.0, 35.9, 100.0, 4.0, 2.3};
    std::cout <<multypl(a,n) <<std::endl;
    return 0;
}
Yandex
Объявления
04.05.2014, 11:11     Найти все элементы массива, которые являются точными квадратами, и посчитать их произведение
Ответ Создать тему
Опции темы

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