С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 908
#1

динамический массив - C++

01.02.2010, 17:53. Просмотров 879. Ответов 9
Метки нет (Все метки)

такая задача: дана матрица размерностью mxn определить количество элементов являющихся простыми числами. матрица представленна в виде одномерного массива указателей.
код массива такой:
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
void main()
{
int n,m;
printf("\n vvedite koli4estvo strok i stolbcov v matrice ");
scanf("%d%d",&n,&m);
int j,i;
int **mas2;
mas2=new int *[n];
randomize();
for(i=0;i<n;i++)
{
mas2[i]=new int[m];
for(j=0;j<m;j++)
mas2[i][j]=random(25);
}
puts("\n vyvod elementov dvumernogo massiva\n");
for(i=0;i<n;i++)
{
printf("\n\n");
for(j=0;j<m;j++)
printf("%4d",mas2[i][j]);
}
for(i=0;i<n;i++)
delete mas2[i];
delete []mas2;
getch();
}
как найти простое число программу я тоже писал уже
вот такого вида:
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
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int n,i,k,f=0;
    printf("vvedite 4islo ");
    scanf("%d",&n);
    if(n==1 ||n==2)
    {
    printf("prostoe 4islo\n\n");
    system("pause");
    exit(2);
    }
    else
    {
    k=int(sqrt(n)+1);
     {
    for(i=2;i<=k;i++)
      {
        if ((n % i)==0)
        f=1;
      }
     }
    }
      if(f==1)
        printf("sostavnoe 4islo\n\n");
       else
         printf("prostoe 4islo\n\n");
    system("pause");
}
а вот как теперь все объеденить, незнаю, а точнее не получается.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2010, 17:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос динамический массив (C++):

Можно ли в классе создавать массив переменной длинны. Например динамический массив? - C++
Динамические массивы привлекают больше. :)

Заполнить динамический массив из файла и записать массив обратно в файл - C++
Подскажите пожалуйста функцию которая будет заполнять Динамический массив из файла и обратную которая этот массив запишет в файл=)

Написать функцию принимающую массив и возвращающую указатель на динамический массив - C++
Написать функцию принимающую массив и возвращающую указатель на динамический массив содержащий первые n нaибольших чисел. Как сделать...

динамический массив (Целое число разложить на массив простых множителей) - C++
Доброго времени суток всем. Целое число необходимо разложить на массив простых множителей. Столкнулся с проблемой, мне нужно, чтобы...

Массив: передать динамический массив в функцию и записать в каждый элемент строку из файла - C++
задача: передать динамический массив в функцию, и записать в каждый элемент строку из файла. количество строк известно вот что у меня...

Как преобразовать массив в динамический? Массив вычисляет сумму элементов каждой диагонали матрицы - C++
Ошибка : Вызвано исключение по адресу 0x00BB2F4F в Проект6.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xFDFDFE05. #...

9
syd2010
23 / 37 / 1
Регистрация: 14.12.2009
Сообщений: 273
01.02.2010, 18:01 #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
void main()
{
int n,m;
printf("\n vvedite koli4estvo strok i stolbcov v matrice ");
scanf("%d%d",&n,&m);
int j,i;
int **mas2;
mas2=new int *[n];
randomize();
for(i=0;i<n;i++)
{
mas2[i]=new int[m];
for(j=0;j<m;j++)
mas2[i][j]=random(25);
}
puts("\n vyvod elementov dvumernogo massiva\n");
for(i=0;i<n;i++)
{
printf("\n\n");
for(j=0;j<m;j++)
printf("%4d",mas2[i][j]);
}
 
[B]int cc = 0;
for (i=0;i<n;i++)
for(j=0;j<m;j++)
if ((mas[i][i] % i)==0)
cc++;
cout<<"Простого отстоя: "<< cc;[/B]
 
 
for(i=0;i<n;i++)
delete mas2[i];
delete []mas2;
getch();
}
0
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 908
01.02.2010, 18:34  [ТС] #3
чтото тут не так, жаль отладчик не работает у меня
0
valeriikozlov
Эксперт С++
4676 / 2502 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
01.02.2010, 19:05 #4
Цитата Сообщение от cibertronic Посмотреть сообщение
чтото тут не так, жаль отладчик не работает у меня
Это точно. Представленный syd2010 код подсчитывает кол-во элементов в главной диагонали массива, значения которых делятся без остатка на номер строки. К тому же каждый такой элемент он подсчитывает количество раз равное количеству столбцов массива.
0
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 908
01.02.2010, 19:14  [ТС] #5
нужно какт не так )
0
valeriikozlov
Эксперт С++
4676 / 2502 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
01.02.2010, 19:29 #6
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
#include <stdio.h>
#include <conio.h>
#include <math.h>
int prost(int A)
{
    if(A<2)
        return 0;
    int fl=1;
    for(int i=2; i<=sqrt(A) && fl; i++)
        if(A%i==0)
            fl=0;
        return fl;
}
 
void main()
{
int n,m;
printf("\n vvedite koli4estvo strok i stolbcov v matrice ");
scanf("%d%d",&n,&m);
int j,i;
int **mas2;
mas2=new int *[n];
randomize();
for(i=0;i<n;i++)
{
mas2[i]=new int[m];
for(j=0;j<m;j++)
mas2[i][j]=random(25);
}
puts("\n vyvod elementov dvumernogo massiva\n");
for(i=0;i<n;i++)
{
printf("\n\n");
for(j=0;j<m;j++)
printf("%4d",mas2[i][j]);
}
// определяем кол-во простых чисел
int col=0;
for(i=0;i<n;i++)
    for(j=0;j<m;j++)
        if(prost(mas2[i][j]))
            col++;
printf("\nKol-vo prostih chisel: %d\n", col);
for(i=0;i<n;i++)
delete mas2[i];
delete []mas2;
getch();
}
0
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 908
01.02.2010, 19:53  [ТС] #7
отлично работает, но вот одно но. все функции и тд должны быть в теле программы а не за ним, т.е. с 4 по 14 строки нужно чтоб было после main()
0
valeriikozlov
Эксперт С++
4676 / 2502 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
01.02.2010, 20:08 #8
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
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
void main()
{
int n,m;
printf("\n vvedite koli4estvo strok i stolbcov v matrice ");
scanf("%d%d",&n,&m);
int j,i;
int **mas2;
mas2=new int *[n];
randomize();
for(i=0;i<n;i++)
{
mas2[i]=new int[m];
for(j=0;j<m;j++)
mas2[i][j]=random(25);
}
puts("\n vyvod elementov dvumernogo massiva\n");
for(i=0;i<n;i++)
{
printf("\n\n");
for(j=0;j<m;j++)
printf("%4d",mas2[i][j]);
}
// определяем кол-во простых чисел
int col=0;
for(i=0;i<n;i++)
        for(j=0;j<m;j++)
        {
            int fl=1;
            if(mas2[i][j]<2){fl=0; }
            for(int y=2; y<=sqrt(mas2[i][j]) && fl; y++)
                if(mas2[i][j]%y==0){fl=0;}
                if(fl){col++;}
        }
printf("\nKol-vo prostih chisel: %d\n", col);
for(i=0;i<n;i++)
delete mas2[i];
delete []mas2;
getch();
}
1
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 908
01.02.2010, 20:30  [ТС] #9
работает) PS кому понадобится незабудте #include <stdlib.h> добавить, ес кто не знает. а то рандом не будет работать))
0
syd2010
23 / 37 / 1
Регистрация: 14.12.2009
Сообщений: 273
01.02.2010, 20:32 #10
Ну это смотря в какой среде писать, если на С++ билдер, то <stdlib.h> там нафиг не нужен))
0
01.02.2010, 20:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2010, 20:32
Привет! Вот еще темы с ответами:

Создать динамический массив (Если чётных чисел больше, то массив должен быть укорочен на 2 элемента) - C++
Создать динамический массив из 8 случайных целых чисел из отрезка и вывести его на экран . Если в массиве чётных чисел оказалось...

Двумерный массив (поменять статический массив на динамический) - C++
Нужно поменять статический массив на динамический с выделением памяти #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; ...

Массив и память. Как создать динамический массив? - C++
не могу исправить ошибки. И нужен динамический массив я что-то попробовала для его создания но ничего не вышло #include &quot;stdafx.h&quot; ...

Переделать динамический массив на статический массив - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; int main() { int dim, counter_1 = 1, counter_2 =...


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

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

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