Наибольшее встречающееся число

Тема в разделе "Общие вопросы по С и С++", создана пользователем pechenka, 27 янв 2009.

  1. pechenka

    pechenka Гость

    Есть программа на задание: "В одномерном массиве найти наиболее часто встречающееся число. Если таких чисел несколько, определить наименьшее из них."
    В этой же программе можете найти наибольшее часто встречающееся число по аналогии с наименьшим и вывести его на экран вместе с наименьшим же?

    [codebox]#include <iostream>
    #include <conio.h>
    #include <time.h>
    using namespace std;

    const int n=10;
    int main(){

    int a[n];
    int i,j,mx,mk,k;

    srand(time(NULL));
    for(i=1;i<=n;i++)
    {
    a=rand()%n+1;
    cout.width(3);
    cout<<a;
    }
    cout<<endl;
    mx=a[1]; mk=1; k=0;
    for(i=1;i<= n;i++) /*цикл в котором производим необходимые проверки для получения результата*/
    {
    for(j=1;j<=n;j++)
    if(a==a[j]) k++;
    if(((mk == k) && (mx > a)) || (mk < k)) /*выбираем меньшее из "одинаковых*/
    {
    mx=a; mk=k;
    }
    k=0;
    }
    cout<<"mx="<<mx<<" count="<<mk<<endl; /*выводим число соответствующее условию, а также количество сколько раз это число встречается в массиве*/

    getch();
    return 0;
    }[/codebox]
     
  2. Humanitis

    Humanitis Гость

    #include <iostream>
    #include <conio.h>
    #include <time.h>
    using namespace std;

    const int n=10;
    int main(){

    int a[n],b[n];
    int *p=b;

    srand(time(NULL));
    for(int i=0;i<n;i++)
    {
    a=rand()%n+1;
    b=0;
    cout.width(3);
    cout<<a;
    }
    for(int i=0;i<n;b[a[i++]-1]++);
    for(int i=1;i<n;i++)
    p=*p<*(p+i)?(p+i): p;

    cout<<"\nmx="<<(p-b )+1<<" count="<<*p<<endl; /*выводим число соответствующее условию, а также количество сколько раз это число встречается в массиве*/

    getch();
    return 0;
    }
     

Поделиться этой страницей