Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di eoj
    Registrato dal
    Feb 2007
    Messaggi
    49

    [C]Orologio dove sbaglio?

    Ciao a tutti non riesco a capire dove sta l'errore il programma viene compilato normalmente ma appaiono numeri dappertutto che mi riempiono la finestra dell'output.

    #include<stdio.h>
    typedef struct tempo {
    int ore;
    int minuti;
    int secondi;
    }temp;
    void aggiorna(tempo *t);
    void stampa(tempo *t);
    void ritardo();

    int main ()
    {
    struct tempo temp;
    temp.ore = 0;
    temp.minuti = 0;
    temp.secondi = 0;

    for(; {
    aggiorna(&temp);
    stampa(&temp);
    }
    return 0;
    }
    void aggiorna(tempo *t)
    {

    (*t).secondi++;
    if((*t).secondi==60) {
    (*t).secondi=0;
    (*t).minuti++;
    }

    if((*t).minuti==60) {
    (*t).minuti=0;
    (*t).ore++;
    }

    if((*t).ore==24) {
    (*t).ore=0;
    ritardo();
    }
    }
    void stampa(tempo *t)
    {

    printf("%d:",(*t).ore);
    printf("%d:",(*t).minuti);
    printf("%d:",(*t).secondi);

    }

    void ritardo() {
    long int t;
    for(t=1;t<1280000;++t);
    }

  2. #2
    Mai sentito parlare dell'operatore modulo ?

  3. #3
    Non così
    codice:
    if((*t).ore==24) {
        (*t).ore=0;
        ritardo();
    }
    ma così
    codice:
    if((*t).ore==24) {
        (*t).ore=0;
    }
    ritardo();
    .
    In ogni caso questo metodo per ottenere un ritardo funziona solo se il programma verrà eseguito sempre e solo sullo stesso processore con lo stesso clock (ad esempio su microcontrollori); su PC, palmari e in generale su qualunque macchina che deve condividere la CPU con altri processi e/o il cui clock non è sempre lo stesso questo approccio non è adeguato, devi usare le apposite funzioni di attesa fornite dal sistema operativo.
    Amaro C++, il gusto pieno dell'undefined behavior.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.