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