Controllo valore più presente in varabili

di il
4 risposte

Controllo valore più presente in varabili

Ciao a tutti,
vi pongo questo quesito.
Ho una serie di variabili di codici, che in teoria dovrebbero essere tutti uguali.
Diciamo 20 variabili che per comodità metto in un array.
Voglio effettuare un controllo quali di questa è quella che si ripete più frequentemente e quale di queste invece è sbagliata.
In teoria ci dovebbe essere un unica variabile che si ripete 20 volte ugualmente con lo stesso valore
Ma potrebbe essere per sbaglio che ho il valore a che si ripete 11 volte e il valore b che si ripete 9
O il valore A 6, il valore B 8 e il valore C 6
Diciamo che almeno a me mi interesserebe sapere almeno il primo e il secondo che si ripetono più volte perchè potrebbero essere anche per sbaglio 17 valori diversi...ma in teoria dovrebbero essere 20 uguali...e io devo verificare

Sto pensando di fare degli array, ma onestamente mi perdo da qualche parte e non riesco ad arrivare alla conclusione, mi sapete indicare la soluzione?
Grazie

4 Risposte

  • Re: Controllo valore più presente in varabili

    Array e un bel ciclo for che controlla con un bel if se sono tutti uguali.
    Puoi crearti altrimenti una funzione che controlla quante volte è ripetuto un numero.
  • Re: Controllo valore più presente in varabili

    Se ho capito bene ti serve un "dato statistisco" su un array?
    Se ad esempio hai 6 7 8 6 6 a te servirebbe dire che il 6 compare 3 volte ed il 7 e 8 una volta?
  • Re: Controllo valore più presente in varabili

    Si esattamente
    voglio diciamo fare una statistica
    cioè di tot numeri sicuramente quello che ha più richiami e via discorrendo
  • Re: Controllo valore più presente in varabili

    Questo codice fa quello che chiedi, sostanzialmente anche se non conosci il C dovrebbe capirsi facilmente e dovresti anche riuscire a modificarlo per i tuoi scopi
    
    #include <stdio.h>
    #include <stdlib.h>
    #define N 5
    
    typedef enum {false,true} boolean;                 
    // questo serve a creare il tipo boolean che in C non esiste nativamente
    //semplicemente enum assegna a false 0 e a true 1
    
    int main()
    {
    int array[N];
    int tmp[N];
    int n_tmp;
    int i,j,k;
    boolean flag;
    int cont;
    for(i=0;i<N;i++)
        {
        printf("Inserisci l'elemento %d: ",i+1);            // gli elementi per noi partono da 1
        scanf("%d",&array[i]);                                     // inserisco da tastiera l'i-esimo elemento
        }
    n_tmp=false ;
    for(i=0;i<N;i++)
        {
        flag=false;
        for (j=0;(j<n_tmp)&&(flag==false);j++)
            if (tmp[j]==array[i])
                flag=true;
        if(flag==false)
            {
            tmp[n_tmp]=array[i] ;
            n_tmp++;
            cont=0;
            for (k=0;k<N;k++)
                if (array[k]==array[i])
                    cont++;
            printf("Elemento %d: %d compare %d volta/e\n",i+1,array[i],cont);
            }
        }
    return 0;
    }
    
Devi accedere o registrarti per scrivere nel forum
4 risposte