Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    28

    C++ Esercizio bisogno di chiarimenti

    Salve a tutti ho provato a scrivere un programma che legge in input da un file liste testo.txt e poi dovrebbe scansionare il file e creare delle coppie, questo e il file testo:

    Alberto 24 Palermo 1
    Ciccio 26 Roma 2
    Carlo 30 Pisa 3
    1 Carla 28 Roma
    2 Maria 28 Roma
    3 Giusi 28 Roma

    Il programma dovrebbe creare queste coppie:
    Alberto 24 Palermo
    Carla 28 Roma
    Ciccio 26 Roma
    Maria 28 Roma
    Carlo 30 Pisa
    Giusi 28 Roma

    Io ho provato a compilare il programma e gira, ma quando faccio run non mi fa vedere niente, potreste corregermi dove sbaglio. Grazie
    Sotto vi posto il mio codice:

    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>


    typedef struct LUI {
    char nome_lui[50];
    int eta_lui;
    char citta_lui[50];
    int n_lui;
    struct _LUI *maschio;
    }LUI;

    typedef struct LEI {
    int n_lei;
    char nome_lei[50];
    int eta_lei;
    char citta_lei[50];
    struct _LEI *femmina;
    }LEI;


    int main()
    {
    int i, j, nlui=0, nlei=0, res, aux, p, k, n;
    FILE *fp;
    fp=fopen("Archivio_coppie.txt", "r");
    LUI archivio[50];
    LEI archivio1[50];


    if (fp==NULL) /*Si è verificato un errore il file Archivio_coppie non esiste*/
    printf ("Errore: il file 'Archivio_coppie.txt' non esiste\n");

    do
    { res=fscanf (fp,"%s %d %s %d %d %s %d %s " ,
    archivio[nlui].nome_lui,
    &archivio[nlui].eta_lui,
    archivio[nlui].citta_lui,
    &archivio[nlui].n_lui,
    &archivio1[nlei].n_lei,
    archivio1[nlei].nome_lei,
    &archivio1[nlei].eta_lei,
    archivio1[nlei].citta_lei);
    }


    while (res!=EOF && ++nlui && ++nlei);
    fclose (fp);




    p = n;
    do
    {k = 0;
    for(i=0; i<nlui-1; i++)
    for(j=0; i<nlei-1; i++)
    if(archivio[i].n_lui>archivio1[i+1].n_lei) {
    aux = archivio[i].n_lui; archivio[i].n_lui= archivio1[i+1].n_lei; archivio1[i+1].n_lei= aux;
    k = 1; p = i+1;
    }
    n = p;
    }
    while(k==1);



    { printf ("\n%d\n%d\n%s\n%s\n%s\n%s\n%d\n%d\n", archivio[i].n_lui,
    archivio1[i].n_lei,
    archivio[i].nome_lui,
    archivio1[i].nome_lei,
    archivio[i].citta_lui,
    archivio1[i].citta_lei,
    archivio[i].eta_lui,
    archivio1[i].eta_lei);


    printf ("\nPremi INVIO per visualizzare la coppia successiva\n");
    getchar();
    }

    printf ("\n\nPremi 'INVIO' per chiudere il programma.\n\n");
    getchar();


    return 0;
    }

  2. #2
    Diciamo che c'è molto da mettere a posto...

    Cmq prima bisogna avere più informazioni sul file di testo da cui leggi:

    Il numero di righe è fisso? Mi spiego maglio tu hai in pratica 2 sezioni nel file 1 formata da "Nome, numero,città, numero" e la seconda formata da "nome, numero, città" il rapporto tra le sezione 1 e 2 e 1 a 1? hai modo di sapere a priori quante righe ci sono in sezione 1 e in sezione 2? il file è scritto tutto di seguito o tra sezione 1 e 2 ci sono linee vuote, spazi e/o caratteri non alfanumerici?

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    28
    Il file testo "Archivio_coppie.txt" è scritto in questo modo:

    Alberto 24 Palermo 1
    Ciccio 26 Roma 2
    Carlo 30 Pisa 3
    1 Carla 28 Roma
    2 Maria 28 Roma
    3 Giusi 28 Roma

    Le righe non sono fissate a priori, le stringhe possono anche essere mescolate, il calcolatore deve essere ingrado di fare le coppie corrette anche con stringhe mescolate e riconoscere se una stringa e ripetuta e eliminarla.

    Il file è scritto:
    nome_lui eta_lui citta_lui n_lui
    ..............................
    .................................
    .......................................
    n_lei nome_lei eta_lei citta_lei

    Le coppie verranno fatte in base a n_lui e n_lei, tipo:
    Alberto 24 Palermo
    Carla 28 Roma

    Il file deve creare le coppie anche se è scritto così:
    Carlo 30 Pisa 3
    1 Carla 28 Roma
    Ciccio 26 Roma 2
    2 Maria 28 Roma
    3 Giusi 28 Roma
    Alberto 24 Palermo 1

    E deve riconoscere se ci sono stringhe doppie e eliminare tipo:
    Alberto 24 Palermo 1
    Ciccio 26 Roma 2
    Carlo 30 Pisa 3
    1 Carla 28 Roma
    2 Maria 28 Roma
    3 Giusi 28 Roma

    Alberto 24 Palermo 1

    Un bel casino!!!!!!!!!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    28
    Disperatamente ho bisogno di aiuto per risolvere questo esercizio, Lunedi bisogna consegnare l'esercizio per poter fare gli esami di Informatica. Sicuramente fra Voi c'è gente che riuscirebbe, Veramente mi sto sbattendo per risolverlo. Grazie

  5. #5
    .

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

    Moderazione

    Originariamente inviato da elefante77
    .
    Perché stai inserendo punti a tutto spiano nel forum?
    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.