A program értelemszerű! (? ) Miért nem működik megfelelően?
//Olvassunk be egy számot(Másodperc) majd írassuk ki Óra/Percben.
#include <stdio.h>
main()
{
int second,minutes,hours=0;
printf("Kérjük adjon meg egy számot (mp)\n");
scanf("%d",&second);
minutes=second/60;
if(minutes >= 59)
{
hours++;
minutes=0;
printf("%dora%dperc",hours,minutes);
}
}
Ha 61 percre jön ki, akkor az 1 óra 1 perc és nem 1 óra 0 perc, ahogy a te programod számolja. A 120 percet is 1 órának fogja venni a programod.
Az összes perc kiszámolása ok. Ebből az órát megkapod, ha 60-al elosztod (egész osztás). Az óra perceit pedig 60-al történő maradékos osztás után kapod.
#include <stdio.h>
main()
{
int second, minutes, hours=0;
printf("Kerjuk adjon meg egy szamot (mp)\n");
scanf("%d",&second);
minutes = (second % 3600) / 60;
hours = second / 3600;
printf("% dora %d perc",hours,minutes);
}
Valamibe nagyon belegabalyodtál. Próbálj ki valami új módszert, mert így nem fogsz megtanulni programozni.
Hát ha már manuálisan növeled a hours-t, akkor illene már ciklusba rakni, mert így ezzel az if-fel 70 millió másodpercnél is csak 1 órát fog neked kiírni.
Egyébként meg ismerkedj meg a % operátorral, nagyon hasznos ilyenkor. :)
Például a minutes = second / 60 egész jó kezdés, de ezt nem kinullázni kéne, mint az if-ben, hanem beszorítani 0 és 59 közé. Ez pedig pontosan a %60 művelet lenne.
Hasonlóképp kéne eljárnod az óra kiszámításával is.
Ha már implicit inteltek (rém igénytelen dolog), legalább írjátok ki a voidot, mert ez így nagyon nem jó.
int main(void)
Így lenne szép.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!