Đoạn code lựa chọn thứ 2 bị lỗi khi lắp vào chương trình chính

#include <stdio.h>
int validdate(int d, int m, int y){
	
	int maxd=31;
	if (m== 4 || m==6 || m==9 || m==11) maxd=30;
	if (d<1 || d >31 || m<1 || m>12 ) {
	return 0;
	 }
	 //LEAP YEAR?//
	else if (m==2)
	{
	  if(y%400==0 || y%4==0 && y%100!=0) maxd=29;
	else maxd =28;
	}
	return d<=maxd;
}
void PrintASCII(char c1, char c2){
	int i;

for(i=c1;i>=c2;i--){
	printf("%c: %d" ",%xh\n",i,i,i);
	
}
	
}


int main(){
char c1,c2;
int d,m,y,choice;
do{

printf("\nD.m lai la m :) \n");
printf("Chon le di m\n");
printf("1.Check the valid date\n");
printf("2.Print out the code ASCII between 2 characters\n");
printf("3.Cut me m di\n");
scanf("%d",&choice);
switch(choice){
	case 1: printf("ENTER DAY: \n");
			scanf("%d",&d);
			printf("ENTER MONTH: \n");
			scanf("%d",&m);
			printf("ENTER YEAR: \n");
			scanf("%d",&y);
		if (validdate(d,m,y)) printf("Valid day");
		else printf("Invalid day");
		break;
	case 2: printf("nhap gia tri cua : ");
			scanf("%c%*c%c",&c1,&c2);
//			scanf("%c",&c1);
//			scanf("%c",&c2);
			PrintASCII(c1,c2);
			break;
}
}while(choice !=3);
printf("CC CUT!");
getchar();
return 0;
}

cho mình hỏi là đoạn code này , lựa chọn thứ 2 , mình cho nó chạy độc lập ở trang mới thì nó chạy được, còn lắp vào sao nó lại bị lỗi nhỉ? Mong mấy bạn chỉ bảo ạ

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