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);
}