С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
24 / 24 / 4
Регистрация: 13.06.2010
Сообщений: 183

Для каждого из чисел массива выяснить, сколько раз каждое из них входит в этот массив

15.07.2011, 15:04. Показов 2940. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача
Дан массив целых чисел. Для каждого из этих чисел выяснить сколько раз каждое число входит в этот массив. Результат представить в виде ряда строк, первая из которых есть А1- k, где k - есть число вхождений А1 в последовательность. Вторая строка будет иметь вид Аi- m, где Аi -есть первый по порядку член, отличный от А1, m - число вхождений этого члена в последовательность и т.д.
т.е. например дан массив 11,25,4,11,11,4,9
элемент - кол-во вхождений
11 - 3
25 - 1
4 - 2
9 - 1

Из оригинального массива надо переписать элементы в массив уникальных элементов(т.е. чтобы они встречались по одному разу), в массив счетчиков соответственно записать сколько раз каждый элемент входит в массив. Что не так делаю? Помогите пожалуйста!
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
# include <conio.h>
# include <stdio.h>
 
void main ()
{
    const n = 7;
    int array1[n] = {11,25,4,11,11,4,9};  // оригинальный массив
    int array2[n] = {0};                // массив уникальных элемeнтов
    int array3[n] = {0};                // массив счетчиков
    int m = 0, index1 = 0 index2 = 0;
    
   for (int i = 0; i < n; i++)
   {
       int x = 0;   // счетчик кол-ва вхождений элемента в массив
       for (int j =  0; j < n; j++)
       {
          if (array1[i] == array1[j])
          {
            x++;
            m = array1[i];
          }
       }
       array2[index1] = m;
       index1++;
       array3[index2] = x;
       index2++;
   }
   for (i = 0; i < index2; i++)
   {
       printf ("%i - %i\n", array2[i], array3[i]);
   }
getch ();
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.07.2011, 15:04
Ответы с готовыми решениями:

Для каждого из чисел, входящих в массив, выяснить, сколько раз оно входит в этот массив
Для каждого из чисел, входящих в массив, выяснить, сколько раз оно входит в этот массив. При выводе не допускается повторного указания...

Для каждого из чисел, входящих в последовательность, выяснить, сколько раз оно в нее входит
Даны целые числа a1,a2,...,an. Для каждого из чисел, входящих в последовательность a1,a2,...,an, выяснить, сколько раз оно входит в эту...

Выяснить сколько раз входит каждое из чисел в последовательность
Помогите решить,пожалуйста. Даны целые числа a1, …, an . Для каждого из чисел, входящих в последовательность a1, …, an , выяснить,...

10
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
15.07.2011, 15:33
Asseni, Ну самое простое исправить Ваш код так:
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
# include <conio.h>
# include <stdio.h>
 
void main ()
{
    const int n = 7;
    int array1[n] = {11,25,4,11,11,4,9};  // оригинальный массив
    int array2[n] = {0};                // массив уникальных элемeнтов
    int array3[n] = {0};                // массив счетчиков
    int m = 0, index1 = 0, index2 = 0;
    
   for (int i = 0; i < n; i++)
   {
       int x = 0;   // счетчик кол-ва вхождений элемента в массив
       for (int j =  0; j < n; j++)
       {          
          if (array1[i] == array1[j])
          {
              if(j<i)
                  break;
            x++;
            m = array1[i];
          }
       }
       if(x!=0)
       {
            array2[index1] = m;
            index1++;
            array3[index2] = x;
            index2++;
       }
   }
   for (int i = 0; i < index2; i++)
   {
       printf ("%i - %i\n", array2[i], array3[i]);
   }
getch ();
}
0
47 / 47 / 6
Регистрация: 09.11.2010
Сообщений: 308
15.07.2011, 15:38
а в чём собственно проблема?
я запустил (исправив мелкие опечатки) и всё норм...

valeriikozlov, вместо if ( j < i ) можно цикл for (int j = 0; j < n; j++) заменить на for (int j = i; j < n; j++). проверка if(x!=0) вообще не нужна, т.к. элемент минимум 1 раз в массиве есть всегда
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
15.07.2011, 15:52
Цитата Сообщение от M__A__K Посмотреть сообщение
вместо if ( j < i ) можно цикл for (int j = 0; j < n; j++) заменить на for (int j = i; j < n; j++).
неправильно. Например для данной последовательности: 11,25,4,11,11,4,9
будет выведено:
11 - 3
...
11 -2
11-1
...
0
Кошковед
 Аватар для co6ak
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
15.07.2011, 16:00
пошли бы ректальным путем. сортировку, и только потом переписывали бы ))
0
 Аватар для xAtom
935 / 760 / 299
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
15.07.2011, 16:02
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
#include <stdio.h>
 
int main(void){
 
  const int size      = 7;
  int       arr[size] = { 11, 25, 4, 11, 11, 4, 9 };
  int       cnts[size];
  int       uniq[size];
  int       size_uniq = 0, chet;
 
  short id;
  for(int i = 0; i < size; i++) {
      chet = 0;
      for(int t = 0; t < size; t++) {
          if(arr[i] == arr[t])
              chet++;
      }
      id = 0;
      for(int u = 0; u < size_uniq; u++) {
         if(arr[i] == uniq[u]){
            id = 1;
            break;
         }
      }
      if(! id) {
         cnts[size_uniq] = chet;
         uniq[size_uniq] = arr[i];
         size_uniq++;
      }
  }
 
  for(int k = 0; k < size_uniq; k++)
      printf("%i - %i\n", uniq[k], cnts[k]);
 
  getchar();
  return 0;
}
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
15.07.2011, 16:06
Цитата Сообщение от co6ak Посмотреть сообщение
пошли бы ректальным путем. сортировку, и только потом переписывали бы ))
Цитата Сообщение от Asseni Посмотреть сообщение
Результат представить в виде ряда строк, первая из которых есть А1- k, где k - есть число вхождений А1 в последовательность. Вторая строка будет иметь вид Аi- m, где Аi -есть первый по порядку член, отличный от А1, m - число вхождений этого члена в последовательность и т.д.
сортировка здесь не пройдет ))
0
Кошковед
 Аватар для co6ak
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
15.07.2011, 16:08
смотря как сортировать...
я не говорил что каким-нить пузырьком по возрастанию...
0
47 / 47 / 6
Регистрация: 09.11.2010
Сообщений: 308
15.07.2011, 16:08
valeriikozlov, прошу прощения, я не достаточно внимательно просмотрел ваш код
0
24 / 24 / 4
Регистрация: 13.06.2010
Сообщений: 183
15.07.2011, 16:12  [ТС]
valeriikozlov
Как все просто оказалось, спасибо за помощь

xAtom
можно и так, заметила что лишняя переменная имеется, заменила index1 и index2 на index, и вместо id = 1, удобно будет bool применить, ну это на любителя

Всем огромное спасибо!!!
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
15.07.2011, 16:12
Цитата Сообщение от M__A__K Посмотреть сообщение
прошу прощения, я не достаточно внимательно просмотрел ваш код
не за что )))
код на самом деле изначально не мой )))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.07.2011, 16:12
Помогаю со студенческими работами здесь

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

Для каждого из чисел, входящих в последовательность, выяснить, сколько раз оно входит в эту последовательность
Помогите сделать программу, просто даже не догоняю с чего начать!! Даны целые числа a1,....,an. Для каждого из чисел, входящих в...

Для каждого из чисел, входящих в последовательность, выяснить, сколько раз оно входит в эту последовательность
Помогите задачу написать на С#

Для каждого из чисел,входящих в эту последовательность а1,...аn,выяснить,сколько раз оно входит в эту последовательность
помогите составить программу на паскале. Даны целые числа а1,...аn.Для каждого из чисел,входящих в эту последовательность...

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru