Szukanie najczęściej występującej liczby.
Kod był wyświetlany 4465 razy.
    /*
  Name: Szukanie najczęściej występującej liczby.
  Copyright: GPL GNU
  Author: Piotr Wawrzyniak
  Date: 13-04-10 16:01
  Description:
  Program , który znajduje wartości najczęściej występujące w jednowymiarowej 
  tablicy 20 – dwuelementowej liczb całkowitych wylosowanych z zakresu (0,10), 
  Jeśli takich wartości jest kilka , wówczas podaje wszystkie. Natomiast jeśli 
  wszystkie wartości tablicy występują jednakowo często, to wyświetla komunikat, 
  że w zbiorze nie ma wartości najczęściej występujących. 
*/

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

int main ()
{
    int tab[100];//tablica główna, przechowuje wylosowane liczby
    int ptab[100];//tablicza pomocnicza przechowuje powtarzające się liczby
    int p=1;//zmienna pomocnicza tablicy ptab
    int i;//zmienna pomcnicza główna tablicy tab, steruje pętlą główną
    int a;//zmienna pomocnicza generacji liczb
    int f=0;//pomocnicza zmienna przechowująca częstość wystepowania
    int g=0;//częstość występowania
    int x;//zmienna pomocnicza przechowująca tymaczowo wartość tab[i]
    int j;//zmienna pomocnicza sterująca pętlami zliczającymi częstość występowania oraz sprawdzającej unikalność liczb w tablicy ptab
    int temp;//pomocnicza, przechowuje ilość powtorzeń liczby x w tablicy ptab
    int suma=0;//zlicza łączną częstość występowania liczb

        cout<<"Wygenerowana tablica: \n\n";
    
          srand(time(NULL));
             for(i=0;i<100;i++)
               {
                a=rand()%11;
                tab[i]=a;
                cout<<tab[i]<<"\t";
               }

    /*Generacja 20 liczb i wyświetlenie na ekran*/
    for(i=0;i<20;i++)//Pętla główna
    {
                   x=tab[i];  
                   
                   for(j=0;j<100;j++)//Pętla zliczająca powtórzenia liczby x w tablicy tab
                      {
                        if(x==tab[j])
                                    
                          f=f+1;
                      }
                           
                        if(f>g)//Przypisanie maksymalnej częstości
                         {    
                           ptab[0]=x;
                           g=f;
                          }
                   
                   if(f==g)//Gdy częstość jest taka sama
                    {
                       temp=0;
                         for(j=0;j<p;j++)//Sprawdzenie czy liczba x nie jest już zawarta w ptab
                             {
                            if(ptab[j]==x)
                              temp++;
                             }
                               if(temp==0)//jeżeli nie jest zawarta
                                  {
                                  ptab[p]=x;
                                  suma=suma+f;
                                  p++;
                                  }
                               }
                                 f=0;
                               }
                                suma=suma+g;
    
                   if(suma==100)//Gdy liczby występują z taką samą częstością
                    {
                     cout<<"\n\nNie ma w zbiorze liczby wystepujacej najczesciej"; 
                    }
    

    else//Wyświetlenie wyniku
    {
        for(i=0;i<p;i++)
        {                   
        cout<<"\n\n\Liczba "<<ptab[i]<<" wystepuje "<<g<<" razy";
        }
        
    }
    cin.ignore();
    getchar();
}    
    
Pobierz plik tekstowy
Administrator WJL
PHP&SQL coded by NOVA-IT