Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
HappyFanik
0 / 0 / 0
Регистрация: 04.03.2011
Сообщений: 39
#1

Дан целочисленный массив размера N.

28.10.2011, 16:55. Просмотров 632. Ответов 3
Метки нет (Все метки)

Дан целочисленный массив размера N. Найти максимальное кол-во его одинаковых элементов. Помогите пожалуйста, а то разобраться не могу. Вот что пробовал сделать
Код
#include "stdafx.h"
#include "stdlib.h"
#include "stdio.h"

int main()
{
	const int N=5;
int i;
int mas[N];
printf("BBeguTe eJIeMeHTbI MaccuBa:\n");
for (i=0; i<N; i++){
scanf("%d",&mas[i]);}
int k=1;
for(i=0;i<N;i++){
	if(mas[i]==mas[i+1]){k=k+1;}
}
printf("\n");

printf("KoJIu4ecTBo oguHakoBbIx eJIeMeHToB: %d \n", k);
getchar();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2011, 16:55
Ответы с готовыми решениями:

Дан целочисленный массив размера N
Дан целочисленный массив размера N. Вывести вначале все содержащиеся в данном массиве четные числа...

Дан целочисленный массив размера N. Преобразовать массив, увеличив каждую его серию на один элемент
1. Дан целочисленный массив размера N. Преобразовать массив, увеличив каждую его серию на один...

Дан целочисленный массив размера N. Преобразовать массив, увеличив каждую его серию на один элемент
Помогите преобразовать код из языка С# в С++. Занимался разбором задачи на языке С++. Вот...

Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не превышает 1
Помогите пожалуйста написать программу. Дан целочисленный массив размера N. Сжать массив, удалив...

Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не превышает 1
Помогите пожалуйста написать программу: Дан целочисленный массив размера N. Сжать массив, удалив из...

3
amor1k
Студент
148 / 148 / 64
Регистрация: 18.01.2011
Сообщений: 469
28.10.2011, 17:12 #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
#include "stdafx.h"
#include "stdlib.h"
#include "stdio.h"
 
int main()
{
        const int N=7;
int i, max = 0, k;
int mas[N];
int deg[N];
printf("BBeguTe eJIeMeHTbI MaccuBa:\n");
for (i=0; i<N; i++){
scanf("%d",&mas[i]);}
for(i=0;i<N;i++){
    deg[i] = 0;
    k = 0;
    for(int j = 0; j < N; j++)
    {
        if(mas[i]==mas[j]){
            ++k;
            deg[i] = k;}
    }
}
for(i=0;i<N;i++){
    if(deg[i] > deg[i + 1])
        max = deg[i];
}
printf("\n");
 
printf("KoJIu4ecTBo oguHakoBbIx eJIeMeHToB: %d \n", max);
getchar();
}
0
leejack
190 / 177 / 37
Регистрация: 19.01.2010
Сообщений: 606
Записей в блоге: 1
28.10.2011, 18:18 #3
amor1k, Хмм..Программа работать будет правильно, НО не корректно!... Так как ты каждый элемент массива mas всегда будешь сравнивать с самим собой один раз! Т.е. допустим, если в массиве нет одинаковых элементов, то массив deg будет содержать всего единичный вектор) Т.е.

[1,1,1,...,N]

Для этого надо условия поставить вот я вроде как написал. Но не проверял!

А..И еще ... Разве в этой строчке
C
1
if(deg[i] > deg[i + 1])
Когда i станет равной N-1, то тогда получается эта строчка будет обращаться к массиву с индексом N, в который собственно ничего не вносили. А т.к. мы не инициализировали это значение массива с индексом N, то возможно там будет число "левое" типа как "23445857345".

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
#include "stdafx.h"
#include "stdlib.h"
#include "stdio.h"
 
int main()
{
        const int N=7;
int i, max = 0, k;
int mas[N];
int deg[N];
printf("BBeguTe eJIeMeHTbI MaccuBa:\n");
for (i=0; i<N; i++)
{
        scanf("%d",&mas[i]);
}
 
for(i=0;i<N;i++)
{
        deg[i] = 0;
        k = 0;
        for(int j = 0; j < N; j++)
        {
                if(i != j)
                {
                        if(mas[i]==mas[j])
                        {
                                ++k;
                                deg[i] = k;
                        }
                }
        }
}
 
for(i=0;i<N-1;i++)    //Здесь поправочка
{
        if(deg[i] > deg[i + 1])
                max = deg[i];
}
 
printf("\n");
 
printf("KoJIu4ecTBo oguHakoBbIx eJIeMeHToB: %d \n", max);
getchar();
}
0
amor1k
Студент
148 / 148 / 64
Регистрация: 18.01.2011
Сообщений: 469
28.10.2011, 18:32 #4
Цитата Сообщение от leejack Посмотреть сообщение
А..И еще ... Разве в этой строчке
Код C
1
if(deg[i] > deg[i + 1])
Когда i станет равной N-1, то тогда получается эта строчка будет обращаться к массиву с индексом N, в который собственно ничего не вносили. А т.к. мы не инициализировали это значение массива с индексом N, то возможно там будет число "левое" типа как "23445857345".
сорри, не заметил=)

Я делал все поспешке, так как очень опаздываю
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2011, 18:32

Дан целочисленный массив размера N. Найти максимальное количество его одинаковых элементов
//Дан целочисленный массив размера N. //Найти максимальное количество его одинаковых элементов.

2) Дан целочисленный массив размера N. Найти максимальное количество его одинаковых элементов
2) Дан целочисленный массив размера N. Найти максимальное количество его одинаковых элементов.

Дан целочисленный массив A размера 10. Вывести номер первого из тех его элементов A[i]
Ссылки и указатели. Дан целочисленный массив A размера 10. Вывести номер первого из тех его...


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

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

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