Copia di un array in un file e successiva stampa

di il
4 risposte

Copia di un array in un file e successiva stampa

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

4 Risposte

Devi accedere o registrarti per scrivere nel forum
4 risposte