Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem programování v C - pomoc s nalezením chyby v programu

Dobrý den,

prosím vás, mohli by jste se mrknout na následující zdrojový kód a pomoci mně tak najít chybu?

Program má za úkol načíst číslo po znacích (počet sekund) a vypsat kolik je to dnů, hodin, minut a sekund.
Překladač (gcc) nehlásí žádnou chybu.

Zajímavé je, že na stolním pc (ubuntu 11.10) program po překladu nepracuje jak má, např při vstupu 654321 mi program napíše, že vstup byl 25606129.
Ale na jiném pc (fedora 15) po přeložení toho samého zdrojáku, pracuje program jak má.

Program jsem psal ve Vimu a překládal pomocí gcc

#include <stdio.h>

int main()
{
  int vstup;
  int pocet_sek;
  int den;
  int hod;
  int pom;
  int min;

    printf("Zadej pocet sekund:\n");

    while ((vstup = getchar()) >= '0' && vstup <= '9'){
      pocet_sek = pocet_sek * 10 + (vstup - '0');
    }
    printf("Zadali jste: %d sekund\n", pocet_sek);

    den = pocet_sek / 86400;
      if (den == 0){
         pom = pocet_sek % 86400;
      }
      else{
         pom = pocet_sek % (den * 86400);
      }

    hod = pom / 3600;
      if (hod == 0){
         pom = pom % 3600;
      }
      else{
         pom = pom % (hod * 3600);
      }
    min = pom / 60;
      if (min ==0){
         pom = pom % 60;
      }
      else{
         pom = pom % (min * 60);
      }

    printf("%d den, %d hodiny, %d minuty, %d sekundy, %d vas vstup \n", den, hod, min, pom, pocet_sek);

return 0;
}
Změna předmětu, původně: programování v C (host) (los)

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny