Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2012, 21:33   #1
xEk
Пользователь
 
Регистрация: 23.11.2011
Сообщений: 19
По умолчанию Найти количество повторяющихся элементов.

Суть в этом: нужно пройти по массиву, найти повторяющиеся элементы и вывести что это за элементы и сколько раз они повторяются. Сделать это нужно как в отсортированном, так и не в отсортированном массивах. Как не в отсортированном массиве это сделать не знаю,а вот написал алгоритм для нахождения в отсортированном массиве
Код:
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
    int n=15,i,k,d,j,count;
    int a[n];
    srand(0);
    for(i=0;i<n;i++)
      a[i]=rand()%5+30;
       printf("\n\nARRAY A\n\n");
       for(i=0;i<n;i++)
      printf("%3i",a[i]);

    for(d=0;d<n-1;d++)
     for(j=d+1;j<n;j++)
      {
          if(a[d]<a[j])
          {
              k=a[d]; a[d]=a[j]; a[j]=k;
          }
      }
  printf("\n\nARRAY A\n\n");
    for(i=0;i<n;i++)
      printf("%4i",a[i]);

 count=1;
 for(i=0;i<n;i++)
  if(a[i]>a[i+1])
     {printf("\nChislo %i",a[i]);printf(" repeat %i",count);count=1;}
     else
      count++;

return 0;
}
но он, не учитывает последний элемент. Что не так? И как это сделать в неотсортированном массиве?
xEk вне форума Ответить с цитированием
Старый 14.05.2012, 21:42   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Код:
for(i=0;i<n;i++)
  if(a[i]>a[i+1])
не учитывает потому что вы его собственно не правильно обрабатываете
+ за пределы лезите!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 14.05.2012, 21:51   #3
xEk
Пользователь
 
Регистрация: 23.11.2011
Сообщений: 19
По умолчанию

Цитата:
Цитата:
Код:

for(i=0;i<n;i++)
if(a[i]>a[i+1])

не учитывает потому что вы его собственно не правильно обрабатываете
+ за пределы лезите!
ну вот а как тогда записать чтоб не лезло и считало последний?
xEk вне форума Ответить с цитированием
Старый 14.05.2012, 23:08   #4
SlavaSSU
Пользователь
 
Регистрация: 15.04.2012
Сообщений: 46
По умолчанию

добавь еще один елемент
a[n+1]=a[n]-1 и цикл увелич до i<=n
НИУ СГУ им. Чернышевского
SlavaSSU вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти количество элементов Zeon2012 Помощь студентам 2 18.03.2012 19:51
В массиве из п элементов много совпадающих элементов. Найти количество различных элементов Strax Фриланс 11 12.06.2010 20:13
Найти количество отрицательных и нечётных элементов. Wiedzzmin Паскаль, Turbo Pascal, PascalABC.NET 1 31.05.2010 22:03
количество повторяющихся элементов в массиве Андрей.12 Помощь студентам 1 28.01.2010 23:57