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

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

Войти
Регистрация
Восстановить пароль
 
Вячеслав Строк
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 8
#1

НОК массива "Си" - C++

15.12.2010, 02:00. Просмотров 648. Ответов 9
Метки нет (Все метки)

Помогите найти НОК всех целых чисел одномерного массива....
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2010, 02:00     НОК массива "Си"
Посмотрите здесь:

"НОК трех чисел" и "Площадь треугольника" - C++
Помогите пожалуйста решить 2 задачи. 1. Разработать функцию, возвращающую наименьшее общее кратное трёх заданных натуральных чисел. 2....

Заменить все элементы массива большие чем "a" значением максимального элемента этого массива - C++
Всем драсте, в общем у меня такая же ситуация) помогите пожалуста написать програмки на массивах 1мерный масив: Заменить все элементы...

Подсчитать количество символов ".", "?", "!" - C++
#include <iostream> using namespace std; void main(){ char str; int i; cout<<"vvedit text"; cin >> str; for( i = 0; i <str...

Как сгенерить два массива с неповторяющимися "случайными" точками (X, Y)? - C++
Добрый вечер! Помогите пожалуйста с задачей. есть структура: struct{ double X; double Y;} Нужно сгенерировать два массива с...

В каждом числе массива определить количество разрядов, равных "1" - C++
В каждом числе массива определить количество разрядов, равных "1". Записать это количество в отдельный массив. Все вроде сделал,только...

Выдает ошибку "Неверный тип для индекса массива" - C++
Выдает вот такую ошибку: invalid types '<unresolved overloaded function type>' for array subscript Немогу понять в чем дело. Место...

В каждом числе массива определить количество разрядов, равных "1" - C++
Вот задание В каждом числе массива определить количество разрядов, равных "1". Записать это количество в отдельный массив. Числа...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
15.12.2010, 06:57     НОК массива "Си" #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
53
54
#include <stdio.h>
#include <math.h>
int simpl(int n)
{
        if(n==2)
            return 1;
        if(n%2==0)
            return 0;       
        for (int i=3; (i*i)<n; i+=2)
                if ((n%i)==0)
                    return 0;
        return 1;
} 
 
int main()
{
    int mas_p[51][3], i_p=0, i, mas[10], j, temp;
    for(i=2; i<200; i++)
        if(simpl(i)==1)
        {
            mas_p[i_p][1]=0;
            mas_p[i_p++][0]=i;
        }
    printf("vvod 10 elementov:\n");
    for(i=0; i<10; i++)
    {
        printf("[%d]= ", i+1);
        scanf("%d", &mas[i]);
    }
    for(i=0; i<10; i++)
    {
        for(j=0; j<51; j++)
            mas_p[j][2]=0;
        temp=mas[i];
        for(j=0; j<51 && temp>1; j++)
        {
            if(temp%mas_p[j][0]==0)
            {
                while(temp%mas_p[j][0]==0)
                {
                    temp/=mas_p[j][0];
                    mas_p[j][2]++;
                }
                if(mas_p[j][2]>mas_p[j][1])
                    mas_p[j][1]=mas_p[j][2];
            }
        }
    }
    temp=1;
    for(i=0; i<51; i++)
        temp*=(int)pow((double)mas_p[i][0], (double)mas_p[i][1]);
    printf("%d", temp);
    return 0;
}
Эта программа как образец. В ней есть некоторые ограничения. Одно из ограничений: если разложить любое число из массива на простые множители то максимальный простой множитель не должен превышать 199.
Вячеслав Строк
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 8
15.12.2010, 17:20  [ТС]     НОК массива "Си" #3
Спасибо! Чет пишет
Ошибка 2 error C3861: 'pow': identifier not found c:\Documents and Settings\Вячеслав\Мои документы\Visual Studio 2005\Projects\21243e\21243e\21243e.cpp 61
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
15.12.2010, 17:26     НОК массива "Си" #4
Вот эта строка:
#include <math.h>
в начале кода есть?
Вячеслав Строк
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 8
15.12.2010, 17:48  [ТС]     НОК массива "Си" #5
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Вот эта строка: в начале кода есть?
есть..

Добавлено через 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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include<conio.h>
#include<iostream.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>
#include<stdafx.h>
#include<iomanip>
#include<conio.h>
#include<string.h>
 
 
int simpl(int n)
{
        if(n==2)
                        return 1;
                if(n%2==0)
                        return 0;       
        for (int i=3; (i*i)<n; i+=2)
                if ((n%i)==0)
                                        return 0;
        return 1;
} 
 
int main()
 
{
        int mas_p[51][3], i_p=0, i, mas[10], j, temp;
        for(i=2; i<200; i++)
                if(simpl(i)==1)
                {
                        mas_p[i_p][1]=0;
                        mas_p[i_p++][0]=i;
                }
        printf("vvod 10 elementov:\n");
        for(i=0; i<10; i++)
        {
                printf("[%d]= ", i+1);
                scanf("%d", &mas[i]);
        }
        for(i=0; i<10; i++)
        {
                for(j=0; j<51; j++)
                        mas_p[j][2]=0;
                temp=mas[i];
                for(j=0; j<51 && temp>1; j++)
                {
                        if(temp%mas_p[j][0]==0)
                        {
                                while(temp%mas_p[j][0]==0)
                                {
                                        temp/=mas_p[j][0];
                                        mas_p[j][2]++;
                                }
                                if(mas_p[j][2]>mas_p[j][1])
                                        mas_p[j][1]=mas_p[j][2];
                        }
                }
        }
        temp=1;
        for(i=0; i<51; i++)
                temp*=pow((double)mas_p[i][0], (double)mas_p[i][1]);
        printf("%d", temp);
        return 0;}
 Комментарий модератора 
Используйте теги форматирования кода.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
15.12.2010, 17:55     НОК массива "Си" #6
Вячеслав Строк,
Ну вообще-то такую ошибку выдает когда нет этой строки: #include <math.h>

Добавлено через 2 минуты
Цитата Сообщение от Вячеслав Строк Посмотреть сообщение
#include<conio.h>
#include<iostream.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>
#include<stdafx.h>
#include<iomanip>
#include<conio.h>
#include<string.h>
Замените на:
C++
1
2
3
4
5
6
7
8
#include<stdafx.h>
#include<iostream.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>
#include<iomanip>
#include<conio.h>
#include<string.h>
И на будущее для Вашего компилятора вот эта куча строк сверху должна начинаться со строки:
#include<stdafx.h>
Вячеслав Строк
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 8
15.12.2010, 19:16  [ТС]     НОК массива "Си" #7
ок помогло, но после ввода 10 элементов прога закрывается....
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
15.12.2010, 19:18     НОК массива "Си" #8
Вот здесь обсуждается эта проблемма:
http://www.cyberforum.ru/cpp-beginners/thread10807.html
выбирайте любой вариант на свой вкус.
Вячеслав Строк
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 8
17.12.2010, 02:18  [ТС]     НОК массива "Си" #9
Спасібо помогло! А можно как нібудь переделать этот іассів в одномерный?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2010, 09:39     НОК массива "Си"
Еще ссылки по теме:

Ошибка C3863 тип массива "char [40]" является неназначаемым - C++
Доброго всем времени суток, вопрос у меня такой что это за ошибка такая (C3863 тип массива &quot;char &quot; является неназначаемым), я сам никак...

Исследование сортировки метода "пузырек" для большого массива - C++
Нужно реализовать сортировку большого массива методом &quot;пузырек&quot; (для 100, 1.000 и 10.000 элементов). Должен присутствовать ввод...

Не могу "спустить" элемент по столбцу двумерного массива - C++
Здравствуйте Пишу 2д-&quot;игру&quot; (в кавычках потому, что игровой процесс как таковой отсутствует и программа просто обрабатывает массив...

Удалить из массива "лишние" (кроме первого) элементы - C++
#include &quot;stdafx.h&quot; #include&lt;conio.h&gt; #include&lt;stdio.h&gt; #include&lt;iostream&gt; #include&lt;iomanip&gt; using namespace std; /*...

"Записать много чисел в одну ячейку массива" - C++
Добрый день, у нас есть ячейка в массиве, размером 4 байта. Мы считываем файл, и нужно по очереди записывать все байты в массив. Когда я...


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

Или воспользуйтесь поиском по форуму:
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
17.12.2010, 09:39     НОК массива "Си" #10
Вячеслав Строк, Можно переделать все. А есть смысл? Все равно здесь нужно будет как минимум два массива: один для хранения простых чисел, второй для хранения максимального кол-ва простых множителей у проверенных ранее чисел.
В одном массиве mas_p[51][3] - первая строка для хранения простых чисел, вторая строка для хранения максимального кол-ва простых множителей у проверенных ранее чисел. Третья строка используется для разложения очередного проверяемого числа. В общем три в одном.
Yandex
Объявления
17.12.2010, 09:39     НОК массива "Си"
Ответ Создать тему
Опции темы

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