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

Найти в массиве и вывести значение наиболее часто встречающегося элемента. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перевод http://www.cyberforum.ru/cpp-beginners/thread136399.html
Здравствуйте. Пожалуйста помогите перевести программы с языка программирования Паскаль на язык Си. 1) Первая программа. program zad_1; const n = 10; var dy, dx : array of real; min,m1:real; i,j,k:integer;
C++ Массивы нужна помощь с задачкой: Даны два одномерных массива А и В. Вычислить элементы массива С по правилу: если аi и bi различны, то сi присвоить их сумму. http://www.cyberforum.ru/cpp-beginners/thread136381.html
C++ Функция chsize
Доброе время суток. Как можно изменить размер файла не используя функцию chsize(handle, seek_w); // 7ps.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "io.h"
Массив объектов C++
Можно так написать? class A {бла-бла-бла} void main() { int x=3; A *arr = new A; }
C++ Отсортировать массив по возрастанию на интервале индексов от n1 до n2 (задаются пользователем) http://www.cyberforum.ru/cpp-beginners/thread136371.html
только сортировка не встроеной функцией. Подскажите как сделать?
C++ Дешифратор кода картинки.. Здраствуйте. Как то я вводил гдето код з картинки и мне стукнуло в голову. А почему би не написать програму которая бы розшыфровывала б коди подтверждений на картинке. Кто чо знает насколько ето реально??? Или есть какието предположения? подробнее

Показать сообщение отдельно
Shman
3 / 3 / 2
Регистрация: 30.04.2012
Сообщений: 212
28.05.2012, 08:06     Найти в массиве и вывести значение наиболее часто встречающегося элемента.
gh05t, интересная программа, а если выпадет две единицы и две двойки? Я специально уменьшил размер масссива до 5 элементов и ввел 1, 1, 2, 2, 3. вывелось 1. Как сделать так, чтобы выводились оба значения, т.е. 1 и 2 ?

Добавлено через 17 часов 12 минут
В общем мне дали подсказку, что это можно осуществить с помощью добавления списка, за что большое спасибо! После этого наиболее часто встречающиеся и равные цифры находятся нормально. Вот код:
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> 
#include <conio.h> 
 
const int N = 10;
int main()
{     
 int mass[N]={3, 3, 2, 2, 1, 1, 7, 7, 9, 9}; // Обявляем массив.
 int list[N]; /* Обявляем массив, куда будут заносится равные, но наиб.  встречающиеся элементы.
                 Например, если задать массив из 5 элементов - 2, 2, 3, 3, 1, то вывести 2 и 3.
              */
 int i, j, count, maxcount, num, len; 
 printf("\n Massiv iz chisel ot 1 do 10: \n");
  for(i=0; i<N; i++)
  { printf("\n Massiv[%d] = %d. ", i, mass[i]); }
  
 len=0; maxcount=1; num=0; // Устанавливаем значения трех переменных по умолчанию.
   for (i=0; i<N; i++) // Перебираем все элементы массива.
    { count=0; // Счетчик в 0.      
       for (j=i; j<N; j++) // Перебираем все элементы от i до конца.
        if (mass[i] == mass[j]) // Если элемент [i] совпадает с одним из последующих [j],
           { count++; } // то увеличиваем значение счетчика.
        if (count==maxcount) // Если очередное число встречается maxcount раз, 
         { list[len]=i; // То занесём его в список.
            len++; } // Увеличиваем значение переменной.
        if (count > maxcount) // Если число больше максимального,
         { maxcount = count; // тогда оно максимальное.
           num = i;  //  Присаваеиваем элемент массива в новую переменную             
           len=1; // Разрушаем прежний список...
           list[0]=i; } // и формируем новый.
    }        
      printf("\n \n Povtor. chisla:");
     for(i=0; i<len; i++)  
      { printf(" %d.", mass[list[i]]); }  // Выводим значения часто повторяющийся элементов.
  
 getch(); 
 return 0;
}
 
Текущее время: 19:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru