Io i contatori errate e giuste li terrei sul main da cui poi posso ricavare le precentuali. Il tuo programma ha molti errori e non so come il compilatore te li faccia passare senza farteli notare.
1. void main non è mai esistito, e non esisterà mai. int main si.
2. la funzione verifica deve tornare qualcosa ma non vedo un return
3. ci sono delle variabili non inizilizzate, errate++ e giuste++ dio sa che valori contengono.
4. alla funzione verifica fare tornare 0 se errata e 1 se giusta e quindi con un if aumenti le variabili rispettive: errate, giuste.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int verifica(int, int, int);
int main()
{
int i, a, b, r;
int errate = 0;
int giuste = 0;
srand(time(NULL));
for(i=0; i<=9; i++)
{
a=rand()%9+1;
b=rand()%9+1;
printf("\n\nMoltiplicazione numero %d\n\n", i+1);
printf("Quanto fa %d per %d?", a, b);
scanf("%d", &r);
if(verifica(a, b, r) == 0)
errate++;
else
giuste++;
}
printf("\nPercentuale risposte giuste: %.2f%%\n",(100. * (float)giuste) / (giuste + errate));
system("pause");
return 0;
}
int verifica(int a, int b, int r)
{
int r2=a*b;
if(r2==r)
{
printf("Risultato esatto!\n");
return 1;
}
else
{
printf("Risultato sbagliato!\n");
}
return 0;
}