Newsgroup: it.comp.programmare
Titolo: [C] aiuto esercizio

sto provando a fare questo esercizio ma mi blocco su alcune funzioni,
chi mi aiuta?
ecco il testo 
Si consideri un ospedale con 100 pazienti dove si fanno 200 esami
clinici diversi.
Si consideri un archivio E dei 200 esami clinici di un ospedale: 
• Codice identificativo dell'esame (progressivo univoco da 1 a 200) 
• Prezzo unitario 
Si consideri un archivio P dei 100 pazienti di un ospedale (con
esattamente 100 pazienti):
• Codice numerico del paziente (progressivo univoco da 1 a 100) 
• Codice fiscale 
• Data di nascita 
• Costo totale degli esami fatti dal paziente (calcolato) 
Si consideri infine un archivio F degli esami clinici fatti ai
pazienti in questo ospedale (dimensione max 1000) composto da:
• Codice identificativo dell'esame (lo stesso dell'archivio E) 
• Codice numerico del paziente (lo stesso dell'archivio P) 
• Esito dell'esame (1= positivo 0=negativo) 
ESERCIZIO BASE 
Scrivere in C un programma che: 
1) Legge da tastiera le informazioni relative agli archivi E e P 
2) Chiama una funzione "fatti" che legge da tastiera gli esami fatti
ai pazienti, in ordine casuale, e li inserisce nell'archivio F.
3) Legge da tastiera il codice di un esame e chiama una funzione
"esame" che rende al main (dove vengono stampati) quanti pazienti
hanno fatto quell'esame con esito negativo e quanti con esito
positivo.
4) Chiama una funzione "costo1" che calcola il valore totale degli
esami fatti a tutti i pazienti presenti e lo restituisce al main.
5) Chiama una funzione "costo2" che calcola il valore del campo costo
totale dell'archivio F, cioè costo totale degli esami fatti ad ogni
singolo paziente (in base al prezzo unitario di ogni singolo esame).
Inserire nel programma una funzione "ordina" che ordina l'archivio F
in base al codice del paziente (2 righe con lo stesso codice possono
essere ordinate indifferentemente).
. 
questo è il mio codice: 
code:--------------------------------------------------------------------------------#include
<stdio.h>
#include <string.h>
#include <stdlib.h>
#define paz 5
#define es 5 
#define max 5
struct E{
    int codes;
    int prez;
 
};
struct P{
    int codpaz;
    float costototes;
    char data[10];
    char fiscale[16];
    };
 
struct F{
int codes;
int codpaz;
int esito;};
void leggi (struct P *,struct E *);
void fatti (struct F *,struct P *);
void esame (struct F *);
void costo1 (struct P *);
void costo2(struct F *);
void ordina(struct F *,int *);
main()
{
struct P aP[paz];
struct E aE[es];
struct F aF[max];
int V[max];
leggi (aP,aE);
fatti (aF,aP);
esame (aF);
costo1 (aP);
costo2(aF);
ordina (aF,V);
system("pause"); 
}
/*
  definizioni funzioni
*/
void leggi (struct P *aP, struct E *aE)
{
 int i;
 for (i=1;i<=es;i++)
     {
     printf("\n codice esame n.%d",i);
     aE[i].codes=i;
     printf("\n prezzo esame. ");
     scanf (" %d", &aE[i].prez);
 
 
     }
     for (i=1;i<=paz;i++)
     {
     printf("\n codice paziente n.%d",i);
     aP[i].codpaz=i;
     printf("\n codice fiscale: ");
     scanf("%s", aP[i].fiscale);
     printf(" data nascita: ");
     scanf("%s",aP[i].data);
     printf("\n costo totale esami paziente ");
 
     }
 }
 
void fatti (struct F *aF, struct P *aP)
{
    int j,p,n;p=0;n=0;j=1;
    while(j<max)
    {
    aF[j].codpaz=aP[j].codpaz;
    printf("\ncodice esame");
    scanf("%d",&aF[j].codes);
    printf("\nesito: ");
    scanf ("&d", &aF[j].esito);
    if (aF[j].esito==1) p++;
    else n++;
    }j++;
 
}
void esame (struct F *aF)
{
int i,cod;
printf("\ncodice esame\n");
scanf("%d",&cod);
for(i=1;i<=paz;i++)
{
if(aF[i].codes==cod)
printf("\npazienti pos e neg %d %d");
}
}
void costo1 (struct P *aP)
{
float costo;costo=0;int i;
for(i=0;i<paz;i++)
 
    costo=costo+aP[i].costototes;
    printf("\ncosto %f", costo);
   }
 
void costo2 (struct F *aF)
{
float costo;costo=0;int i;
for(i=0;i<paz;i++)
 
    costo=costo;
    printf("\ncosto %f", costo);
   }
void ordina (struct F *aF,int *V) 
//funz che crea un vettore in base al codice dal + alto 
{
int i,k;
int temp;
for(i=0;i<paz;i++)
  V[i]=aF[i].codpaz;
  for(k=0;k<paz;k++)
      {
      for(i=k;i<paz;i++)
          {
            if(V[i]<V[k]) 
              {
              temp=V[k];
              V[k]=V[i];
              V[i]=temp;
              }
 
          }     
    } 
       for(k=0;k<paz;k++)
    printf("\n %d %d ",k, V[k]); 
  }
 
  --------------------------------------------------------------------------------
ora mi trovo in difficoltà su costo 1 e costo2,infatti le ho lasciate
incomplete, anke xke nell'archivio P mi chiede il costo totale da
calcolare, ma?
non guardate le cazzate ke avrò scritto, ma non lo reggo sto C... 
grazie!

 . Esito dell'esame (1= positivo 0=negativo)


 
infatti sono di cagliari, ma il prof è diverso.