Em vừa học lập trình , đang tập viết code cho bài "Nhập vào giờ phút giây ,cho biết thời gian sau 1s là ?
đây là code em viết:
#include<stdio.h>
void nhap(int &h,int &m,int &s);
int ktra(int h,int m,int &s);
int tinh(int &h,int &m,int &s,int kt); //nhap gio phut giay vao cho biet thoi gian sau 1s
void xuat(int kq ,int &h,int &m,int &s);
void main()
{
int h,m,s,kt,kq;
nhap(h,m,s);
ktra(h,m,s);
kt=ktra(h,m,s);
tinh(h,m,s,kt);
kq=tinh(h,m,s,kt);
xuat(kq,h,m,s);
}
void nhap(int &h,int &m,int &s)
{
printf("nhap gio vao:"); scanf("%d",&h);
printf("nhap phut vao:");scanf("%d",&m);
printf("nhap giay vao:");scanf("%d",&s);
}
int ktra(int h,int m,int &s)
{
if((h>=0)&&(m>=0)&&(s>=0)&&(h<24)&&(m<60)&&(s<60))
{
return 1;
}
else
{
return 0;
}
}
int tinh(int &h,int &m,int &s,int kt)
{
if(kt==1)
{
s=s+1;
if(s==60)
{
m=m+1;
s=0;
}
if(m==60)
{
h=h+1;
m=0;
}
if(h==24)
{
h=0;
}
return 1;
}
else
{
return 0;
}
}
void xuat(int kq ,int &h,int &m,int &s)
{
if(kq==0)
{
printf("ko hop le\n");
}
if(kq==1)
{
printf(" %d gio %d phut %d giay \n",h,m,s);
}
}
theo như ý tưởng thì nếu nhập 23:59:59 ----->0:0:0 nhưng kết quả lại là 0:0:1,kiểm tra thì em thấy nó repeat +1 hai lần , mọi người có thể giải thích vì sao không ạ? Em cảm ơn