Ciao a tutti, questo programma che ho scritto dovrebbe leggerei dei numeri interi dalla tastiera, copiarli in un array, trascrivere l'array in un file e poi stampare i numeri ordinati presi dal file.
Quando stampo i numeri letti dal file al posto del primo numero mi mette l'indirizzo, mentre tutti gli altri li stampa. Dove sono gli errori??
#include <stdio.h>
#define LungMax 10
void ordinaTabella(int array[LungMax], int m)
{
int i,j;
for(i=0;i<m-1;i++)
{
for(j=0;j<m-i-1;j++)
{
if(array[j]>array[j+1])
{
int tmp=array[j];
array[j]=array[j+1];
array[j+1]=tmp;
}
}
}
}
int main()
{
int array[LungMax], num,k=0, n,m=0;
char nomeFile[15];
FILE *fp;
printf("Inserisci il numero di elementi che vuoi inserire (max 10): ");
scanf("%d", &n);
if(n>LungMax)
{
printf("Errore: numero di elementi superiore a 10.\n\n");
}
else
{
printf("\nInserisci numeri interi diversi da zero:\n");
for(k=0;k<n;k++)
{
printf("Inserisci numero %d: ", k+1);
scanf("%d", &num);
array[k]=num;
m++;
}
ordinaTabella(array,n);
printf("\nInserire il nome del file: ");
scanf("%s", nomeFile);
fp=fopen(nomeFile, "w");
if(fp)
{
fprintf(fp, "%d", array);
}
else
{
printf("Errore");
}
fclose(fp);
fp=fopen(nomeFile, "r");
if(fp)
{
fscanf(fp, "%d", array);
for(int g=0;g<m;g++)
{
printf("%d\t", array[g]);
}
}
else
{
printf("Errore");
}
fclose(fp);
}
return(0);
}