Scusami ma sono nuovo, grazie mille per il consiglio
main.c
#include <stdio.h>
#include <stdlib.h>
#include "c_list.h"
#include "libretto.h"
#include "esame.h"
int main(int argc, char *argv[])
{
list l;
int pos;
item val;
esame es;
esame temp;
int i=0,n;
printf("\nInserisci il numero di libretti: ");
l = input_list(n);
val = input_item();
pos = pos_item(l,val);
val = get_item(l,pos);
es = dammi_esame(val);
char nome[51];
printf("\nInserisci il nome: ");
scanf("%s", nome );
while(i<30)
{
cif (dammi_stato(es[i]==1))
{
if (strcmp(dammi_nome_esame(es[i]),nome))
{
stampa_esame(es[i]);
}
}
i++;
}
return 0;
}
in esame.c metto solo una fuzione per farvi vedere che dove ho indicizzato
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "esame.h"
//struttura esame
struct esam
{
char nome[61];
int voto;
char data[11];
int presente;
};
//tale funzione ritorna un vettore di esami
esame input_esame()
{
int i=0;
esame p;
int n;
printf("Inserisci il numero degli esami che vuoi inserire: "); //viene richiesto all'utente il numero di esami che vuole inserire
scanf("%d", &n);
if((n<1) || (n > 30))
{
return NULL; //si verifica se il numero inserito dall'utente è corretto
}
p = malloc(sizeof(struct esam)*30); //si alloca spazio per la taglia massima del vettore
if (p==NULL) //controllo sull'allocazione
{
printf("Non è stato possibile allocare memoria.");
return NULL;
}
while(i<n) //si scorre il vettore per n volte
{
printf("\nInserisci il nome dell'esame: ");
scanf("%s", p[i].nome);
printf("Inserisci il voto: ");
scanf("%d", &(p[i].voto));
printf("Inserisci la data nel formato gg/mm/aaaa: ");
scanf("%s", p[i].data);
p[i].presente=1; //viene messo un valore sentinella a 1 per indicare che la cella contiene valori
i++;
}
return p; //viene ritornato il puntatore al vettore
}
esame.h
typedef struct esam* esame;
//la seguente funzione inserisci un vettore di esami
esame input_esame(void);
//la seguente funzione stampa un vettore di esami
int output_esame(esame es);
//il seguente operatore restituisce il nome di un esame
char *dammi_nome_esame(esame x);
//il seguente operatore restituisce il voto dell'esame
int dammi_voto_esame(esame x);
//il seguente operatore restituisce la data in cui si è sostenuto l'esame
char *dammi_data_esame(esame x);
//il seguente operatore restituisce se la cella del vettore è vuota o meno
int dammi_stato(esame x);
//la seguente funzione inserisce un esame in una variabile
esame inserisci_esame();
//la seguente funzione stampa una variabile di tipo esame.
void stampa_esame(esame x);
riassumo in breve qual'è l'obiettivo:
ho una lista di libretti universitari, in questi libretti vi è un vettore di esami.
Il mio obiettivo e di poter accedere a questi esami e di lavorare su di essi anche singolarmente.