halo,
yang ahli dalam per-coding-an, gw ada masalah nih. Gw dah buat
coding buat jumlahin waktu (jam:menit). Secara umum dah sempurna,
atau mendekati lah. Tapi, untuk input tertentu, coding ini gak
akurat. Misalnya, waktu diinput 445+445(4jam 45 menit), yang keluar
itu 929(9jam 29 menit). Seharusnya kan outputnya 930(9jam 30 menit).
Kira-kira coding gw salahnya dimana ya? tolong bantuin dong..
bingung nih..
ini coding gw punya:
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
void main()
{
int a,b,hour,minute;
float x,y,z1,z2,i,j;
char push;
_setcursortype(_NOCURSOR);
textmode(3);
do
{
clrscr();
gotoxy(21,1);printf("TIME CALCULATOR\n");
gotoxy(21,2);printf("---------------");
gotoxy(1,3);printf("Input time to calculate(HourMinute):\n");
printf("(Example: 0130 --> means (an hour and thirty minutes)\n\n");
printf("input 1: "); scanf("%d",&a);
printf("input 2: "); scanf("%d", &b);
x=(float)a/100;
y=(float)b/100;
z1=(x-(int)x);
z2=(y-(int)y);
i=z1*100;
j=z2*100;
hour=(int)x+(int)y;
minute=i+j;
if(minute>=60 && minute<120)
{
hour+=1;
minute%=60;
}
else
{
if(minute>=120 && minute<180)
{
hour+=2;
minute%=60;
}
else
{ if(minute>=180)
{
hour+=3;
minute%=60;
}
}
}
printf("\nYOUR TOTAL TIME: ");
printf("%d",hour);
printf(":%d",(int)minute);
printf("\nTry again?: (Y/N)");
scanf("%c",push);
push=getch();
}
while(push=='y' || push=='Y');
}
plz give me a hand!!!