Problema con le occorrenze e valore massimo da inserire in c.

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.

eolo111

Nuovo Utente
Messaggi
34
Reazioni
2
Punteggio
26
Salve a tutti, avrei un problema con un esercizio di informatica, non sono un programmatore ma uno studente di ingegneria elettrica, il testo dell'esercizio richiede di inserire n numeri in un array,questi numeri devono essere compresi tra 0 e max_val che deve decidere il programmatore,come se non bastasse devo scrivere su un file il contenuto dell'array è riportare il numero di occorrenze di ogni singolo valore.Ho abbozzato il programma, ma non mi calcola le occorrenze. accetto qualsiasi suggerimento grazie.

Codice:
#include <stdio.h>
#define DIM 100
void scrivi_file(int*,int,int);
int main()
{
    int arr[DIM],n,c;
    int max_val=10;
    int cont=0;
    printf("Quanti numeri vuoi inserire?\n");
    scanf("%d",&n);
    printf("inserirsci i %d numeri compresi tra 0 e %d\n",n,max_val);
    for(int i=0;i<n;i++)
    {
        printf("Numero %d: ",i);
        scanf("%d",&c);
        if(c>=0 && c<=max_val)
        {
            arr[i]=c;
            cont++;
        }
        else
         {
            printf("Numero sbagliato\n");
            printf("Inserisci un numero tra 0 e %d.\n",max_val);
         }
    }
    scrivi_file(arr,n,cont);
    return 0;
}
void scrivi_file(int *a,int n,int conta)
{
    FILE *fp;
    fp=fopen("/home/andrea/Documenti/Andrea/Informatica/prova.txt","w");
    for(int i=0;i<n;i++)
    {
        fprintf(fp,"%d %d\n",a[i],conta);
    }
    fclose(fp);
}
 
Primo errore: utilizzi la variabile "conta" per contare il numero di valori giusti, ma usi le variabili "i" e "n" nel ciclo. Usa solo "conta", che è quella giusta, e fermati quando raggiunge il valore massimo. Usa un while invece di un for.
Secondo errore, cosa succede se il numero di valori richiesti è più grande di DIM? Devi allocare il tuo vettore dinamicamente (o limiti il valore di essere più piccolo di DIM.
Cominciamo con questi poi passiamo alla distribuzione.
 
scusa ma non ho capito di quale ciclo for parli, se di quello della funzione o quello per l'inserimento dei valori nell'array?
 
Stato
Discussione chiusa ad ulteriori risposte.
Pubblicità
Pubblicità
Indietro
Top