PDA

Visualizza la versione completa : [C]Algoritmo calcolo max e min


hyena_73
19-09-2006, 16:37
Buonasera ragazzi,
fra qualche giorno ho l'esame scritto di programmazione e non riesco a risolvere in toto :dhò: il seguente problema:"Calcolo del max e min tra n interi (non si precisa la quantità)col ciclo while/for usando valore sentinella"
Qualcuno può aiutarmi???:confused:

I need source file!

THX

fastcoder
19-09-2006, 17:00
Prova questo:


int getMinMax(int v*, int n, int *max, int *min)
{
if( !max || !min || !v )
return 0;

int i;
*max = *min = v[0];
for( i = 1; i < n; i++ )
{
if( *max < v[i] )
*max = v[i];
if( *min > v[i] )
*min = v[i];
}
return 1;
}

Provalo perchè l'ho scritto di getto.
:ciauz:

hyena_73
19-09-2006, 17:09
Grazie del supporto, ma ancora vado sul semplice. Di questo che ne pensi?

/*Programma che calcola media, max e min di un nnumero indefinito di interi
mediante iterazione indefinita:uso del valore sentinella -1*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,num,somma, max, min;
float media;

printf("Calcolo della Media, Max e Min tra interi\n\n");


somma=0;
i=0;

printf("Scrivi un intero positivo, -1 per terminare l'input: ");
scanf("%d", &num);
max=min=num; //così dovrebbe andar bene!

while(num!=-1)


{
if(num>max)
max=num;
if(num<min)
min=num;

somma=somma + num;
i++;
printf("Scrivi un intero positivo, -1 per terminare l'input: ");
scanf("%d", &num);

}
if(i!=0)
{
media=(float)somma/i;
printf("Somma= %d\n\n", somma);
printf("Media= %.2f\n\n", media);
printf("Max= %d\n\n", max);
printf("Min= %d\n\n", min);
}

else
printf("Non hai inserito alcun numero!!!\n\n");


system("pause");
return 0;
}

fastcoder
19-09-2006, 17:43
Ma...dovrebbe funzionare...però min non lo puoi inizializzare a zero altrimenti dato che il numero inserito è sempre positivo il min rimane sempre zero. Inizializzalo a MAX_INT o qualcosa del genere oppure metti max e min uguali al primo numero inserito.
:ciauz:

hyena_73
19-09-2006, 17:51
Grazie mille fastcoder,...ora funziona tutto a meraviglia :D :yuppi:

Loading