Non capisco,cioè è da poco che creo tipi di strutture quindi sono un principiante però in questo esercizio non mi da errori e anche qui inserisco puntatori senza usare malloc e tutto gira normale!!
Questo è un altro esercizio
FILE.H
codice:
struct Studente{
int matricola;
char* nome;
char* cognome;
};
typedef struct Studente studente;
struct Esami{
int matricola;
char* nomemateria;
int voto;
};
typedef struct Esami esami;
void leggistud(int n, studente V[]);
void leggiesami(int n, esami M[]);
int somma(studente s, esami E[]);
FILE.MAIN.C
codice:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include "ex7-es6.h"
#define N 4
#define N1 4
int main(){
int tot=0;;
studente identifica[N];
esami sostenuti[N1];
leggistud(N,identifica);
leggiesami(N1,sostenuti);
for(int i=0;i<N;i++){
tot=somma(identifica[i],sostenuti);
printf("il totale dei voti della matricola %d è :%d\n",identifica[i].matricola,tot);
}
return 0;
}
FILE.C
codice:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include "ex7-es6.h"
#define N 4
#define N1 4
void leggistud(int n, studente V[]){
for(int i=0;i<n;i++){
printf("inserisci la matricola il nome e il cognome dell'elemento in pos[%d]: ",i);
scanf("%d%s%s",&V[i].matricola,&V[i].nome,&V[i].cognome);
}
}
void leggiesami(int n, esami M[]){
for(int j=0;j<n;j++){
printf("inserisci la matricola il nome dell'esame e il voto dell'elemento in pos[%d]: ",j);
scanf("%d%s%d",&M[j].matricola,&M[j].nomemateria,&M[j].voto);
}
}
int somma(studente s, esami E[]){
int ris=0;
for(int k=0;k<N1;k++){
if(s.matricola==E[k].matricola){
ris+=E[k].voto;
}
}
return ris;
}
MAKEFILE
codice:
ex7-es6finale: ex7-es6.o ex7-es6main.o
c99 -o ex7-es6finale ex7-es6.o ex7-es6main.o
ex7-es6.o: ex7-es6.c
c99 -c ex7-es6.c
ex7-es6main.o: ex7-es6main.c
c99 -c ex7-es6main.c