Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316

    [C] aiuto con programma

    Ciao, sto studiando il C e non riesco a risolvere un esercizio. La consegna è:
    scrivi un programma che legga n date in formato mm/gg/yy e che determini quale di queste date è la minore (cioè viene prima). L'inserimento delle date si ferma quando l'utente inserisce 0/0/0.

    Fino ad ora sono arrivato qui ma non riesco a capire come non memorizzare il 0/0/0 finale

    codice:
    #include <stdio.h>
    
    int main(void){
    
        int d1, m1, y1, d2, m2, y2;
        
        printf("inserisci data: ");
        scanf("%d/%d/%d" &m1, &d1, &y1);
        
        d2 = d1;
        m2 = m1;
        y2 = y1;
        
        while(m1 != 0 && d1 != 0 && y1 != 0){
        
            if(y1 < y2){
                if(m1 < m2){
                    if(d1 < d2){
                        d2 = d1;
                        m2 = m1;
                        y2 = y1;
                    }
                }
            }    
    
            printf("inserisci data: ");
            scanf("%d/%d/%d", &m1, &d1, &y1);
        }
    
        printf("%d/%d/%d è la data minore", m2, d2, y2);
        
        return 0;
    }
    dove sbaglio?

    grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Qui

    scanf("%d/%d/%d", &m1, &d1, &y1);

    manca una virgola

    ma il problema logico è nelle if. Ripensa un po' alla sequenza corretta ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316
    ok risolto

    codice:
    if(y1 <y2){
        d2 = d1;
        m2 = m1;
        y2 = y1;
    }else if(y1 == y2){
        if(m1 < m2){
            d2 = d1;
            m2 = m1;
            y2 = y1;
        }else if(m1 == m2){
                if(d1 < d2){
                    d2 = d1;
                    m2 = m1;
                    y2 = y1;
                }
         }
    }
    giusto?

    grazie

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.