Tìm lỗi sai trong chương trình

Mọi người cho em hỏi em sai chỗ nào vậy ạ. Dò mãi ko ra.
Đề là tìm ngày kế tiếp của ngày đã nhập.
Kết quả ra nhập sai ạ.

#include<stdio.h>
int namNhuan(int year){
	if( year % 400 == 0 || year % 100 !=0 || year % 4 == 0)
	{
		return 1;
		}
	else{
		return 0;
		}
	}	
int dayInMonth( int month , int year){
	int day;	
	if( month < 1 || month > 12){
		day = -1;
		}
	else{
		switch(month){
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
			{
				day = 31;
				break;
			}
			case 4:
			case 6:
			case 9:
			case 11:
			{
				day = 30;
				break;
			}
			defaut:
				{
				if(namNhuan(year) == 0)		
					 day = 28;
				else
					day = 29;
				break;
				}
			}
		}
	return day;
}
int nextDay( int day , int month , int year){
	int ngay = dayInMonth(month,year);	
	if( ngay == -1 || day < 1 || day > ngay )
		return -2;	
	else{
		 if( day < ngay)
			day++;
			else if( month != 12){
				day = 1;
				month++;
				}
				else{
					day = month = 1;
					year++;
				}
		}
	}	
 main(){
int day, month, year;
printf("nhap ngay\n");
 scanf("%d",&day);
printf("nhap thang\n");
 scanf("%d",&month);
printf("nhap nam\n");
 scanf("%d",&year); 	
  if( nextDay(day,month,year) == -2)
  	printf("nhap sai"); 	
  else{
  	printf(" ngay ke tiep la:\n%d/%d/%d",day,month,year);	
  	}
}

nhìn cái post thấy nản, kể cả cái tiêu đề :roll_eyes:

Em xin lỗi, em sẽ rút kinh nghiệm ạ.

Truyền tham trị sao ra bạn :slight_smile:

2 Likes

Như cái scanf() ấy!

1 Like

Mình xin cám ơn nhiều.

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