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

Дан двумерный массив целых чисел. Вычислить количество четных чисел среди элементов, встречающихся в массиве ровно 3 раза

18.12.2013, 23:13. Просмотров 919. Ответов 11
Метки нет (Все метки)

Кто может, помогите пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2013, 23:13
Ответы с готовыми решениями:

Дан массив целых чисел. Определить количество четных элементов и количество элементов, оканчивающихся на цифру 5
Дан массив целых чисел. Определить количество четных элементов и количество...

Дан двумерный массив целых чисел. Найти сумму элементов в этом массиве стоящих перед нулём
Ребят, помогите исправить код. Нужно чтобы считало сумму перед нулем. ...

Дан двумерный массив целых чисел, найти количество чисел, кратных N
Дан двумерный массив целых чисел, найти количество чисел, кратных N. Как это...

Дан двумерный массив целых чисел из 4 столбцов и 3 строк. Найти сумму элементов в этом массиве стоящих после первого
В чем ошибка? Он у меня наоборот подсчитывает сумму элементов предшествующих...

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

11
Ev_Hyper
Заблокирован
18.12.2013, 23:23 2
Можно создать массив элементов встречающихся три раза, а потом искать количество четных чисел.
0
Анатолииий
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 15
18.12.2013, 23:32  [ТС] 3
Массивы должны быть заполнены некоторыми случайными
значениями.
0
MicM
824 / 483 / 324
Регистрация: 29.12.2009
Сообщений: 1,106
Завершенные тесты: 1
18.12.2013, 23:40 4
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
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <iomanip>
 
struct mas
{
    int a;
    int c;
};
 
int main()
{
    srand (time(NULL));
    int a[5][5],k = 0;
    mas tmp[25];
    for (int i=0; i<5; i++)
    {
        for (int j=0; j<5; j++)
        {
            a[i][j]=rand()%16+1;
            tmp[k].a = a[i][j];
            tmp[k].c = 1;
            ++k;
            std::cout <<std::setw(4) <<a[i][j];
        }
        std::cout <<std::endl;
    }
    k = 0;
    for (int i=0; i<24; i++)
    {
        for (int j=i+1; j<25; j++)
            if (tmp[i].a==tmp[j].a)
                tmp[i].c++;
        if (tmp[i].c==3 && tmp[i].a%2==0)
            ++k;
    }
    std::cout <<k <<'\n';
    return 0;
}
1
Ev_Hyper
Заблокирован
18.12.2013, 23:42 5
Цитата Сообщение от Анатолииий Посмотреть сообщение
Массивы должны быть заполнены некоторыми случайными
значениями.
Вот так например:
C++
1
2
3
4
  srand((time(NULL)));
    for(int i=0; i<n;i++)
        for(int j=0; j<n;j++)
           a[i][j]=rand()%100;
1
MicM
824 / 483 / 324
Регистрация: 29.12.2009
Сообщений: 1,106
Завершенные тесты: 1
18.12.2013, 23:47 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
49
50
51
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <iomanip>
 
struct mas
{
    int a;
    int c;
};
 
int main()
{
    srand (time(NULL));
    int a[5][5],k = 0;
    mas tmp[25];
    for (int i=0; i<5; i++)
    {
        for (int j=0; j<5; j++)
        {
            a[i][j]=rand()%16+1;
            tmp[k].a = a[i][j];
            tmp[k].c = 1;
            ++k;
            std::cout <<std::setw(4) <<a[i][j];
        }
        std::cout <<std::endl;
    }
    k = 0;
    bool f;
    for (int i=0; i<24; i++)
    {
        f = true;
        for (int k=0; k<i; k++)
            if (a[i]==a[k])
            {
                f = false;
                break;
            }
        if (f)
        {
            for (int j=i+1; j<25; j++)
                if (tmp[i].a==tmp[j].a)
                    tmp[i].c++;
            if (tmp[i].c==3 && tmp[i].a%2==0)
                ++k;
        }
    }
    std::cout <<k <<'\n';
    return 0;
}
1
Анатолииий
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 15
18.12.2013, 23:49  [ТС] 7
тут ещё один нюанс,, программа должна запрашивать число строк и число столбцов
0
Ev_Hyper
Заблокирован
18.12.2013, 23:55 8
Как-то так тогда задавайте:
C++
1
2
3
4
5
6
7
cout << "Vvedite razmer n m" << endl;
cin >> n >> m;
// Выделение памяти под массив
double  **umas2;
umas2=new double*[n];  
for(i=0; i<n; i++) 
umas2[i]=new double[m];
P.S Код скопировал с чьей-то программы на форуме
1
Анатолииий
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 15
18.12.2013, 23:57  [ТС] 9
понятно, но всё равно спасибо
0
MicM
824 / 483 / 324
Регистрация: 29.12.2009
Сообщений: 1,106
Завершенные тесты: 1
18.12.2013, 23:58 10
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
64
65
66
67
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <iomanip>
 
struct mas
{
    int a;
    int c;
};
 
const int nmax = 10;
const int mmax = 10;
 
int main()
{
    srand (time(NULL));
    int a[nmax][mmax],k = 0;
    mas tmp[nmax*mmax];
    int n,m;
    do
    {
        std::cout <<"lines: ";
        std::cin >> n;
    }
    while (n<0 || n>nmax);
    do
    {
        std::cout <<"Columns: ";
        std::cin >> m;
    }
    while (m<0 || m>mmax);
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<m; j++)
        {
            a[i][j]=rand()%16+1;
            tmp[k].a = a[i][j];
            tmp[k].c = 1;
            ++k;
            std::cout <<std::setw(4) <<a[i][j];
        }
        std::cout <<std::endl;
    }
    k = 0;
    bool f;
    for (int i=0; i<n*m-1; i++)
    {
        f = true;
        for (int k=0; k<i; k++)
            if (a[i]==a[k])
            {
                f = false;
                break;
            }
        if (f)
        {
            for (int j=i+1; j<n*m; j++)
                if (tmp[i].a==tmp[j].a)
                    tmp[i].c++;
            if (tmp[i].c==3 && tmp[i].a%2==0)
                ++k;
        }
    }
    std::cout <<k <<'\n';
    return 0;
}
1
Анатолииий
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 15
19.12.2013, 17:57  [ТС] 11
Спасибо огромноеМожет вы мне ещё подскажете, я тут пытался написать программу, которая должна вывести наименьшее натуральное число, которое можно представить двумя разными способами в виде суммы кубов двух натуральных чисел. Но так и не разобрался, как сделать, чтобы программа оставила только одно наименьшее значение, а не всё что она выводит

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <math.h>
#include <conio.h>
int main()
{
int i,j,l,k,n;
 
{
for (i=1; i*i*i<n; i++)
for (j=i+1; j*j*j<n; j++)
for (l=1; l*l*l<n; l++)
if (l!=i && l!=j)
for (k=l+1; k*k*k<n; k++)
if (k!=i && k!=j)
if ((i*i*i+j*j*j)==(l*l*l+k*k*k))
{printf("Naimenshee natur chislo: %d: ",(i*i*i+j*j*j));
printf("%d^3+%d^3=%d^3+%d^3\n ",i,j,l,k);
 
}
return 0;
}
}
Добавлено через 7 минут
Спасибо огромноеМожет вы мне ещё можете помочь, я пробовал написать программу которая выводит наименьшее натуральное число, которое можно представить двумя разными способами в виде суммы кубов двух натуральных чисел, но она выводит множество этих значение, а надо именно наименьшее. Подскажите пожалуйста,что исправить
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <math.h>
#include <conio.h>
int main()
{
int i,j,l,k,n;
 
{
for (i=1; i*i*i<n; i++)
for (j=i+1; j*j*j<n; j++)
for (l=1; l*l*l<n; l++)
if (l!=i && l!=j)
for (k=l+1; k*k*k<n; k++)
if (k!=i && k!=j)
if ((i*i*i+j*j*j)==(l*l*l+k*k*k))
{printf("Naimenshee natur chislo: %d: ",(i*i*i+j*j*j));
printf("%d^3+%d^3=%d^3+%d^3\n ",i,j,l,k);
 
}
return 0;
}
}
Добавлено через 17 часов 43 минуты
Не могли бы вы мне объяснить, что такое
Цитата Сообщение от MicM Посмотреть сообщение
srand (time(NULL));
?
почему самый большой размер матрицы 10 на 10?
И почему генератор случайных чисел выдаёт число именно до 16?
Буду очень благодарен
0
MicM
824 / 483 / 324
Регистрация: 29.12.2009
Сообщений: 1,106
Завершенные тесты: 1
19.12.2013, 18:08 12
Цитата Сообщение от Анатолииий Посмотреть сообщение
почему самый большой размер матрицы 10 на 10?
Это не принципиально, просто мне так захотелось
Цитата Сообщение от Анатолииий Посмотреть сообщение
И почему генератор случайных чисел выдаёт число именно до 16?
Потому что вот
C++
1
a[i][j]=rand()%16+1;
Можете задать любой диапозон, какой хотите
Цитата Сообщение от Анатолииий Посмотреть сообщение
srand (time(NULL));
Это надо, чтобы каждый раз генерировались разные числа
1
19.12.2013, 18:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2013, 18:08

Дан массив целых чисел. Найти сумму четных элементов
Через массив динамический

Двумерный массив. Найти: максимальное из чисел, встречающихся в заданной матрице более одного раза
Найти: максимальное из чисел, встречающихся в заданной матрице более одного...

Дан файл целых чисел. айти среди этих чисел те, что больше за среднее арифметическое суммы всех элементов
дано файл целых чисел A1,....,An, которые упорядочены за спаданием. Найти среди...


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

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

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