#include <stdio.h>
#define N 30

int main(){
	int i; /* indice */
	int voti[N]; /* voti[i]>=18 && voti[i]<=30 */
	int crediti[N]; /* crediti[i]>=1 && crediti[i]<=12 */
	int nvoti=0; /* nvoti<=30 */
	char scelta='s', c;
	int somma_crediti=0;
	int somma_pesata_voti=0;
	float media=0.0;
	
	/* Acquisizione dati */
	for(i=0; i<30 && scelta=='s'; i++){
		do {
			printf("Inserire nuovo voto: ");
			scanf("%d", &voti[i]);
		} while ( voti[i]<18 || voti[i]>30 );
		do {
			printf("Inserire crediti corrispondenti: ");
			scanf("%d", &crediti[i]);
		} while ( crediti[i]<1 || crediti[i]>12 );
		do {
			printf("Inserire un altro voto? [s/n]");
			scanf("%c", &scelta);
			scanf("%c", &c);
			/* printf("\n\"%c\"\n",scelta); */
		} while (scelta!='s' && scelta!='n');
	}
	nvoti=i; /* lunghezza effettiva degli array */

	for(i=0; i<nvoti; i++) 
		printf("%d (%d)\n", voti[i], crediti[i]);
	printf("\n");

	/* Calcolo della media: 
         *  media = Sommatoria( voto*crediti ) / Sommatoria ( crediti )
         */
	for(i=0; i<nvoti; i++){
		somma_crediti+=crediti[i];
		somma_pesata_voti+= voti[i]*crediti[i];
	}

	media = ((float) somma_pesata_voti)/((float) somma_crediti);
	printf("Media dei voti: %f\n", media);

	return 0;
}

