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

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

Войти
Регистрация
Восстановить пароль
 
HappyFanik
0 / 0 / 0
Регистрация: 04.03.2011
Сообщений: 39
#1

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

28.10.2011, 16:55. Просмотров 504. Ответов 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();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2011, 16:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дан целочисленный массив размера N. (C++):

Дан целочисленный массив размера N - C++
Дан целочисленный массив размера N. Вывести вначале все содержащиеся в данном массиве четные числа в порядке возрастания их индексов, а...

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

Дан целочисленный массив размера N. Преобразовать массив, увеличив каждую его серию на один элемент - C++
1. Дан целочисленный массив размера N. Преобразовать массив, увеличив каждую его серию на один элемент. (Серия - группа подряд идущих...

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
amor1k
Студент
147 / 147 / 24
Регистрация: 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();
}
leejack
190 / 177 / 9
Регистрация: 19.01.2010
Сообщений: 608
Записей в блоге: 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();
}
amor1k
Студент
147 / 147 / 24
Регистрация: 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".
сорри, не заметил=)

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

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

Дан целочисленный массив размера N. Удалить из массива все одинаковые элементы, оставив их первые вхождения. - C++
Дан целочисленный массив размера N. Удалить из массива все одинаковые элементы, оставив их первые вхождения.

Дан целочисленный массив размера N. Удалить из массива все одинаковые элементы, оставив их последние вхождения - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;rus&quot;); int n, i; time_t t;...

Дан целочисленный массив размера N. Удалить из массива все одина- ?ковые элементы, оставив их первые вхождения - C++
Всем привет у меня тут проблемка, может кто подскажет ?Дан целочисленный массив размера N. Удалить из массива все одина- ?ковые...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.10.2011, 18:32
Ответ Создать тему
Опции темы

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