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

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

Восстановить пароль Регистрация
 
HappyFanik
0 / 0 / 0
Регистрация: 04.03.2011
Сообщений: 39
28.10.2011, 16:55     Дан целочисленный массив размера N. #1
Дан целочисленный массив размера 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. Сжать массив, удалив из него все элементы, модуль которых не превышает 1
Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не превышает 1 C++
2) Дан целочисленный массив размера N. Найти максимальное количество его одинаковых элементов C++
C++ Дан целочисленный массив размера N
C++ Дан целочисленный массив размера N. Удалить из массива все одина- ?ковые элементы, оставив их первые вхождения
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
amor1k
Студент
 Аватар для amor1k
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
28.10.2011, 17:12     Дан целочисленный массив размера N. #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
 Аватар для leejack
188 / 175 / 9
Регистрация: 19.01.2010
Сообщений: 607
Записей в блоге: 1
28.10.2011, 18:18     Дан целочисленный массив размера N. #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
Студент
 Аватар для amor1k
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
28.10.2011, 18:32     Дан целочисленный массив размера N. #4
Цитата Сообщение от leejack Посмотреть сообщение
А..И еще ... Разве в этой строчке
Код C
1
if(deg[i] > deg[i + 1])
Когда i станет равной N-1, то тогда получается эта строчка будет обращаться к массиву с индексом N, в который собственно ничего не вносили. А т.к. мы не инициализировали это значение массива с индексом N, то возможно там будет число "левое" типа как "23445857345".
сорри, не заметил=)

Я делал все поспешке, так как очень опаздываю
Yandex
Объявления
28.10.2011, 18:32     Дан целочисленный массив размера N.
Ответ Создать тему
Опции темы

Текущее время: 10:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru