Problema proposto:
Creare un programma che legga 20 numeri da un txt...numeri incolonnati che possono anche irpetersi...
per esempio
23
54
32
23
65
32
76
23
ecc
ecc
il programma prende i numeri crea una specie di tabella con il numero quante volte compare e due percentuali...
qualcuno sa spiegarmi perche il programma si blocca e non riesco a completare il ciclo del programma correttamente?
lo ho complitato con TC in DOS perche a scuola nn abbiamo altro...
Grazie mille
codice:#include <stdio.h> #define MAX 20 FILE *fdati; int a,n=0; int f[MAX][4]; void CARICA() { int i=0; if (n==0) { f[0][0]=a; f[0][1]; n++; } else { while (i<n) { if (f[i][0]==a) { f[i][1]++; i=n+1; } else i++; } if (i>n) {f[n][0]=a ; f[n][1]=1; n++; } } } void CALCOLA() { int x=0; inty,k; for (y=0 ; y<n ; y++) { x=x+ f[y][1] ;} for (y=0 ; y<n ; y++) { f[y][2] =(100*(f[y][1])/x); f[0][3]=f[0][2]; } for (k=1 ; k<n-1 ; k++) { f[k][3]=f[k][2] + f[k-1][3]; } } void STAMPA() { int i=0; for (i=0 ; i<n ; i++) { printf("%8d %8d %8d &8d \n", f[i][0] ,f[i][1] ,f[i][2] ,f[i][3]); } } int main() { if((fdati=fopen ("dati.txt","rt"))==NULL) {printf("ERRORE"); return(1);} while (! feof(fdati)) {fscanf(fdati,"%d",&a); printf("%d\n",a); CARICA();} CALCOLA(); STAMPA(); fclose(fdati); }

Rispondi quotando