Prima funzionava, poi ho aggiunto alla struct l'array indirizzo[SIZE] ma adesso quando vado ad eseguirlo dopo aver immesso i dati di input di da un errore e si chiude l'esecuzione.
Chi mi aiuta. Vi prego è urgente!
#include <stdio.h>
#include<string.h>
#include<conio.h>
#define SIZE 100
#define SIZEV 3
typedef struct
{
char nome[SIZE];
char cognome[SIZE];
char indirizzo[SIZE];
int telefono;
} Persona;
void caricaPersona ( Persona *p);
void caricaVettore(Persona *p,int n);
void ordinaVettore(Persona *p,int n);
void stampaPersona (Persona p);
void stampaVettore(Persona *p,int n);
void caricaPersona(Persona *p)
{
char invio;
printf("Nome:");
gets(p->nome);
printf("Cognome:");
gets(p->cognome);
printf("Indirizzo:");
gets(p->indirizzo);
printf("Telefono: 081\'");
scanf("%d",&p->telefono);
scanf("%c",&invio);
}
void caricaVettore(Persona *p,int n)
{
int i;
for(i=0;i<n;i++)
{
caricaPersona(&p[i]);
}
}
void ordinaVettore(Persona *p,int n)
{
int i,j,telefono;
char buffer[SIZE];
for(i=0;i<=n-1;i++)
{
for(j=i+1;j<=n;j++)
{
if(p[i].telefono>p[j].telefono)
{
strcpy(buffer,p[i].cognome);
strcpy(p[i].cognome,p[j].cognome);
strcpy(p[j].cognome,buffer);
strcpy(buffer,p[j].nome);
strcpy(p[j].nome,p[i].nome);
strcpy(p[i].nome,buffer);
strcpy(buffer,p[j].indirizzo);
strcpy(p[j].indirizzo,p[i].indirizzo);
strcpy(p[i].indirizzo,buffer);
telefono=p[j].telefono;
p[j].telefono=p[i].telefono;
p[i].telefono=telefono;
}
}
}
}
void stampaPersona(Persona p)
{
printf("Nome:%s \n Cognome:%s \n Indirizzo: %s\n Telefono':%d\n",p.nome,p.cognome,p.indirizzo,p.tel efono);
}
void stampaVettore(Persona *p,int n)
{
int i;
for (i=0;i<n;i++)
stampaPersona(p[i]);
}
main()
{
char ch;
int i,j,eta;
Persona p[SIZEV],buffer[SIZEV];
caricaVettore(p,SIZEV);
ordinaVettore(p,SIZEV);
stampaVettore(p,SIZEV);
system("PAUSE");
return 0;
ch=getch();
}

Rispondi quotando