Giúp ý tưởng bài toán?

Nhập vào giờ phút giây.Cộng thêm số giây bất kì và in ra màn hình dưới dạng hh:mm:ss.
Nếu số giây cộng thêm lớn hơn 3600 hoặc 7200 hay nhiều hơn nữa thì làm sao ạ, chẳng lẽ cứ viết hoài??

int gio,phut,giay;
	int them;
	printf("Nhap gio phut giay: ");
	scanf("%d%d%d",&gio,&phut,&giay);
	printf("Nhap giay them: ");
	scanf("%d",&them);
	
	if(giay + them<60)
	    giay = giay + them;
    else if(giay+them>=60)
    {
    	giay = (giay + them) - 60;
    	phut = phut + 1;
    }
    
    if(phut>=60)
    {
    	phut = phut - 60;
    	gio = gio + 1;
    }
    printf("%02d:%02d:%02d",gio,phut,giay);   	  
	return 0;

Đây là cách để chuyển một số kiểu int sang giờ phút giây (n là một số kiểu int, h là giờ, m là phút, s là giây). Bạn có thể áp dụng cách này vào bài :smiley:
Ví dụ mình nhập n = 5000, kết quả trên màn hình: 01:23:20

h = n / 3600;
m = (n % 3600) / 60;
s = (n % 3600) % 60;

Chúc bạn học tốt :smiley:

1 Like

Cho chương trình nhập vào bình thường với điều kiện ss & mm < 60, còn hh thì forever =)) hoặc <= 24

Cái này giản đơn mà, dùng if là xong :slight_smile:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?