Generatore di un numero in C

di il
3 risposte

Generatore di un numero in C

Ciao a tutti.. ho fatto questo programma in C per contare quante volte è stato generato un numero tra 0 e 99.. ma c'è un bel casino e non mi riesce proprio.. non capisco dove sbaglio.. voi ci riuscite? grazie tante e buona serata a tutti
ecco il programma che ho realizzato (totalmente sbagliato) --->

#include <stdio.h>
#include <stdlib.h>
#define MAX 100

int carica (int [], int);
void frequenza (int [], int, int[]);
void stampa (int [], int);

int main()
{
    int n, v[MAX], f [MAX], i;
    do{
        printf("Inserisci dei numeri: ");
        scanf("%d", &n);
    }while (n<0 || n>99);

    v[i]= carica(v[MAX], n);
    frequenza(v[i], n, f[MAX]);
    stampa(v[i], n);
    return 0;
}


int carica (int v[], int n){
    int i;

    for (i=0; i=n; i++) {
        i = rand() % 99 + 1;
    }
    return v[i];
}

void frequenza (int v[], int n, int f[]){
    int i;
    for (i=0; i=99; i++)
    {
        f[i]==0;
    }
    for (i=0; i=n; i++) {
        f[v[i]]=f[v[i]]+1;
    }
}

void stampa (int v[], int n){
    int i;
    for(i=1; i=n; i++)
    {
        printf("Il numero e' stato generato %d volte", v[i], i);
    }
}

3 Risposte

  • Re: Generatore di un numero in C

    Ciao,


    Beh si sono sbagliato un bel pò di cose , ma sostanzialmente non ho capto cosa deve fare il programma. Deve contare quante volte è stato generato un numero tra 0 e 99 , ma su quante volte?
    
      do{
            printf("Inserisci dei numeri: ");      // a cosa serve questo algoritmo?
            scanf("%d", &n);
        }while (n<0 || n>99);
    
    
    int carica (int v[], int n) ;
    ma quando la chiami gli passi v[MAX] che è un int 
    v[i]= carica(v[MAX], n);
    
    
    frequenza(v[i], n, f[MAX]);
    lo stesso discorso di prima per v[i] e f[MAX]
    void frequenza (int v[], int n, int f[]) ; 
    
    
    stampa(v[i], n); 
    lo stesso discorso per stampa 
    void stampa (int v[], int n);
    
  • Re: Generatore di un numero in C

    Ti scrivo il testo dell'esercizio:
    " Dato un vettore chiamato Numeri(n) caricato casualmente con valori interi compresi tra 0 e 99, calcolare la frequenza con cui sono stati generati i numeri casuali, visualizzando quante volte è stato generato casualmente il numero 1, quante volte è stato generato il numero 2, e così via fino al numero 99. Usare un vettore di appoggio di lunghezza 99 per il calcolo delle frequenze."

    Ho provato a correggere l'inizio che avevo sbagliato l'inserimento da parte dell'utente del vettore e l'ho modificato in questo modo --->

    #include <stdio.h>
    #include <stdlib.h>
    #define MAX 100
    
    int carica (int [], int);
    void frequenza (int [], int);
    void stampa (int [], int);
    
    int main()
    {
        int n, v[MAX], i, num;
        do{
            printf("Inserisci la lunghezza del vettore: ");
            scanf("%d", &num);
        }while (num<0 || num>100);
    
        v[i]= carica(v[MAX], num);
        frequenza(v[i], n);
        stampa(v[i], n);
        return 0;
    }
    
    
    int carica (int v[], int num){
        int i;
    
         for(i=0; i<num; i++) {
            printf("Inserisci gli elementi del vettore:", i);
            scanf("%d", &v[i]);
         }
    
        //for (i=1; i=num; i++) {
            v[i] = rand() % 99 + 1;
    
        return v[i];
    }
    
    void frequenza (int v[], int num){
        int i, f[MAX];
        for (i=1; i=100; i++)
            {
            f[i]==0;
            }
            for (i=1; i=num; i++)
                {
                f[v[i]]=f[v[i]]+1;
                }
    }
    
    void stampa (int v[], int n){
        int i;
        for(i=1; i=n; i++)
        {
            printf("Il numero e' stato generato %d volte", v[i], i);
        }
    }
    
    Adesso il carica vettore funziona ma per il resto niente.. penso l'errore sia nel void frequenza () anche se non capisco bene dove..
  • Re: Generatore di un numero in C

    In questo modo il programma nessuno te lo leggerà , devi metterlo tra i tag code e /code . Leggi il regolamento ^^
Devi accedere o registrarti per scrivere nel forum
3 risposte