Mi da errore nel testo in grassetto e sottolineato,vado un pò in confusione con le stringhe.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NMAX 150
typedef struct{
char cog[9]; //cognome
char nom[8]; // nome
char data[11]; // data di nascita
char prov[3]; // provincia
float quot; // quota
char pagato[3]; //pagato
}TVacanza;
void leggi(TVacanza v[], int *n);
void ordina (TVacanza v[], int n);
void statistica(TVacanza v[], int n);
float totale(TVacanza v[], int n);
void visualizza(TVacanza v[], int n);
int main() {
TVacanza v[NMAX];
int n=0;
leggi(v,&n);
ordina(v,n);
statistica(v,n);
totale(v,n);
visualizza(v,n);
}
void leggi(TVacanza v[], int *n){
int i;
char st[80];
char cognome[30], nome[40], datan[11], provincia[4], quota[9], pagat[6];
FILE *fp=fopen("elenco.txt","r");
fgets(st,80,fp);
i=0;
while(!feof(fp)){
fgets(st,80,fp);
sscanf(st,"%[^'|']|%[^'|']|%[^'|']|%[^'|']|%[^'|']|%[^'\n']\n",cognome,nome,datan,provincia,quota,pagat);
strcpy(v.cog, cognome);
strcpy(v.nom, nome);
strcpy(v.data, datan);
strcpy(v.prov, provincia);
v.quot=atof(quota);
strcpy(v.pagato, pagat);
i++;
}
*n=i;
fclose(fp);
}
void ordina(TVacanza v[], int n){
int i;
TVacanza tmp;
for(i=0;i<n-1;i++){
if(v.quot>v[i+1].quot){
tmp=v;
v=v[i+1];
v[i+1]=tmp;
}
}
}
void statistica(TVacanza v[], int n){
float a=0;
int i;
char tmp1[4];
char tmp2[4];
char z[]="NO";
char s[]="SI";
float si=0;
float no=0;
float p1=0;
float p2=0;
for(i=0;i<=n-1;i++)
if(strcmp( v.pagato,s)==0){
strcpy(tmp1,TVacanza v[]);
}else if(strcmp(v[i].pagato,z)==0){
strcpy(tmp2,TVacanza v[]);
}
for(i=0;i<n-1;i++){
si+=tmp1[i];
p1=v[i].quot*100/si;
}
for(i=0;i<n-1;i++){
no+=tmp2[i];
p2=v[i].quot*100/si;
}
}
float totale(TVacanza v[], int n){
}
void visualizza(TVacanza v[], int n){
int i;
for(i=0;i<n-1;i++){
printf("%10s",v[i].cog);
printf("%10s",v[i].nom);
printf("%12s",v[i].data);
printf("%5s",v[i].prov);
printf("%13.1f",v[i].quot);
printf("%5s\n",v[i].pagato);
}
}