Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C]Età persone(aiuto algoritmo)

    Avrei questo problemino da risolvere: Inserire dall'esterno l'età in anni di alcune persone. Terminare quando si introduce un numero negativo. Stampare al centro dello schermo l'età maggiore e l'età minore.
    (sono al primo anno di ing. informatica)

    questo è il programmino che ho scritto:

    #include <stdio.h>
    #include <limits.h>

    int main(){

    int anni,MAX,MIN;

    MAX=INT_MIN;
    MIN=INT_MAX;

    while(anni>0){

    printf("Inserisci età: ");
    scanf("%d", &anni);

    if (anni>MAX)
    anni=MAX;
    else if (anni<MIN)
    anni=MIN;
    }

    printf("Età Massima: %d\n", MAX);
    printf("Età Minima: %d\n", MIN);
    }

    il problema è che non appena compilato ed eseguito il programma si comporta stranamente e non riesco ad individuare il problema.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468
    Il ciclo e i suo contenuto deve essere corretto cosi'

    codice:
      do
      {
        printf("Inserisci età: ");
        scanf("%d", &anni);
    
        if(anni>0)
        {
          if (anni>MAX)
            MAX=anni;
    		
          if (anni<MIN)
            MIN=anni;
        }
      } while(anni>0);
    ... dai tu un'occhiata agli errori ..
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Ma da quello che ho capito l'unico mio errore è stato quello di non aggiungere la condizione if all'inizio degli if. Ma perchè si doveva aggiungere quell' if?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468
    No ... non e' solo quello il problema ...

    La if ti serve perche' se inserisci -1 nella variabile anni, questo valore viene considerato come il minimo dalle if seguenti ... (chiaro?).

    Ma l'errore piu' grave sta nell'avere scritto

    anni=MAX; e anni=MIN;

    al posto di

    MAX=anni; e MIN=anni;

    (molto piu' grave)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    grazie 1000 oregon. che errori madornali che ho commesso. Cioè non è la prima volta che scrivo questo tipo di programmi. Ma sarà stata sicuramente la stanchezza. Ti ringrazio. La prossima volta lo rileggo 10^10 volte il programma.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.