Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Ma questo programma funzionerebbe con 2 file di input di tipo *.dat?

    ciao ragazzi! vorrei sapere sequesto programma funzionerebbe a dovere se avessi i 2 file .dat richiesti.. nel senso che: quando lo compilo non mi da problemi ma non sono molto bravo con la garte di "gestione dei file" in C.. grazie e a presto! P.S le funzioni che ho creato sono quelle che sono rischieste dall'esercizio, e anche la sequenza con cui deve agire il main mi e' fornita.. deve "solo" funzionare!


    #include <stdio.h>
    #include <string.h>
    #define MaxDim 100

    void leggi_lista(FILE *f1, int array[MaxDim]);
    void stampaSUschermo(int n, int array[MaxDim]);
    void azzera_array(int n, int array[MaxDim]);
    void concatena_array(int p, int q, int r, int array1[MaxDim], int array2[MaxDim], int array3[MaxDim]);


    int
    main (void)
    {
    int A1[MaxDim],A2[MaxDim],A3[2*MaxDim];
    FILE *f1,*f2;
    int i,j,k;
    f1=fopen("merge1","r");
    f2=fopen("merge2","r");
    fscanf(f1,"%d", &i);
    fscanf(f2,"%d", &j);
    k=i+j;
    leggi_lista(f1,A1);
    leggi_lista(f2,A2);
    fclose(f1);
    fclose(f2);
    concatena_array(i,j,k,A1,A2,A3);
    stampaSUschermo(k,A3);
    }

    /* funzione che legge lista da file */

    void leggi_lista(FILE *f1, int array[MaxDim])
    {
    int i,k;
    fscanf(f1,"%d%", &k);
    azzera_array(k,array);
    for (i=0;i<k;i++)
    {
    fscanf(f1,"%d", &array[i]);
    }
    }



    /* funzione stampa su video */

    void stampaSUschermo(int n, int array[MaxDim])
    {
    int k;
    printf("Questo e' il nuovo array concatenato:\n");
    for (k=0;k<n;k++)
    {
    printf("%d ", array[k]);
    }
    }


    /* funzione che azzera un array */
    void azzera_array(int n, int array[MaxDim])
    {
    int k;
    for (k=0;k<n;k++)
    {
    array[k]=0;
    }
    }

    /* funzione che concatena 2 stringhe restituendone una terza */
    void concatena_array(int p, int q, int r, int array1[MaxDim], int array2[MaxDim], int array3[MaxDim])
    {
    int k;
    azzera_array(r,array3);
    for (k=0;k<p;k++)
    {
    array3[k]=array1[k];
    }
    for(k=0;k<q;k++)
    {
    array3[p+k]=array2[k];
    }

    }

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Occorre aggiungere il linguaggio nel titolo, come da Regolamento, e usare il tag CODE per formattare correttamente il codice.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.