Minore tra 5 numeri

di il
4 risposte

Minore tra 5 numeri

Buonasera, ho scritto questo programma in C che calcola il minore tra 5 numeri dati in input e ho un dubbio.
Avrei intenzione di implementare una funzione che mostra un messaggio d'errore se viene inserito un carattere al posto di un numero... suppongo sia possibile ma non saprei come fare, qualcuno saprebbe aiutarmi?

Grazie.
//Scrivere un programma che legge 5 numeri da tastiera e ne restituisce il minimo

#include<stdio.h>
int main(void)
{
float i,n,min,s;
printf("Inserisci un numero: ");
scanf("%f",&n);
printf("\n");
min=n;
	for(i=0;i<4;i++)
	{
	printf("Inserisci un numero: ");
	scanf("%f",&s);
	printf("\n");
	if(s<min)
		min=s;
	}
printf("Il numero minore e' %f",min);
return 0;
}

4 Risposte

  • Re: Minore tra 5 numeri

    Puoi provare qualcosa del genere
    
    #include<stdio.h>
    #include<stdlib.h>
    int main(void){
        int i;
        float n;
        char ok = 0, buffer[100];
        while(!ok){
            ok = 1;
            printf("Inserisci un numero: ");
            scanf("%s",  buffer);   
            for(i = 0; buffer[i] != '\0'; i++)
                  if((buffer[i] > '9') || (buffer[i] < '0' && buffer[i] != '.' && buffer[i] != '-' && buffer[i] != '+'))
                    ok = 0;
            if(ok)
                n = strtof(buffer, NULL);
            else
                printf("Formato non valido\n");         
        }
        printf("Hai inserito %f", n);
        return 0;
    }
    
  • Re: Minore tra 5 numeri

    Weierstrass ha scritto:


    Puoi provare qualcosa del genere
    Grazie mille, è un po' troppo avanzato per me che faccio C solo a scuola quindi aspetterò altre risposte.
  • Re: Minore tra 5 numeri

    Puoi valutare il valore restituito dalla scansione e se è 0 cancellare il buffer di input e ripetere
  • Re: Minore tra 5 numeri

    Sì ma in quel caso se scrive "12we" la scanf funziona e si prende 12. Poi se a lui va bene a posto così
Devi accedere o registrarti per scrivere nel forum
4 risposte