Ho dichiarato separatamente le variabili e sono riuscito a far uscire almeno la media corretta per ogni volta che inserisco un numero pari o dispari. Il problema è che adesso i vari Massimi e Minimi stampano continuamente questi valori:
Inserire N numeri, -1 per terminare:1
Per tutti i numeri dispari si ha...
Minimo: -2147483648
Massimo: 2147483647
Media: 1.00
Inserire N numeri, -1 per terminare:2
Per tutti i numeri pari si ha...
Minimo: -2147483648
Massimo: 2147483647
Media: 2.00
Inserire N numeri, -1 per terminare:3
Per tutti i numeri dispari si ha...
Minimo: -2147483648
Massimo: 2147483647
Media: 2.00
Inserire N numeri, -1 per terminare:-1
Ho cambiato il codice così:
#include <stdio.h>
#include <limits.h>
int main ()
{
int minD=INT_MIN;
int minP=INT_MIN;
int maxD=INT_MAX;
int maxP=INT_MAX;
int counterD=1;
int counterP=1;
int totalD=0;
int totalP=0;
int num;
float MediaD, MediaP;
printf("Inserire N numeri, -1 per terminare:");
scanf("%d", &num);
while (num!=-1) {
if (num%2==1 || num==1) {
totalD+=num;
MediaD= (float) totalD/counterD;
counterD++;
if (num<minD)
minD=num;
if (num>maxD)
maxD=num;
printf("Per tutti i numeri dispari si ha...\nMinimo: %d\nMassimo: %d\nMedia: %.2f\n", minD, maxD, MediaD);
}
else if (num%2==0 && num!=1) {
totalP+=num;
MediaP= (float) totalP/counterP;
counterP++;
if (num<minP)
minP=num;
if (num>maxP)
maxP=num;
printf("Per tutti i numeri pari si ha...\nMinimo: %d\nMassimo: %d\nMedia: %.2f\n", minP, maxP, MediaP);
}
printf("Inserire N numeri, -1 per terminare:");
scanf("%d", &num);
}
}