Thắc mắc về hạn chế của đoạn code

Em có viết hàm kiểm tra số có phải dạng sóng không?
Ví dụ: 13142 là số dạng sóng.
Đoạn code của e đúng hết với mọi trường hợn n nhỏ hơn hoặc bằng 10 chữ số còn trường hợp lớn hơn 10 chữ số thì hàm e lại trả về 0.
Em không biết bị vậy là do kiểu dữ liệu hay sao ạ? Nhờ mọi người giải đáp.

int checksodangsong(long int n)
{
	int csc, csk;
	csc = n % 10;
	n = n / 10;
	csk = n % 10;
	int flag;
	if (csc > csk) flag = 1;
	else if (csc < csk) flag = 2;
	else return 0;
	while (n != 0)
	{
		if (flag == 2)
		{
			csc = csk;
			n = n / 10;
			if (n == 0) break;
			csk = n % 10;
			if (csc > csk)flag = 1;
			else return 0;
		}
		else if (flag == 1)
		{
			csc = csk;
			n = n / 10;
			if (n == 0) break;
			csk = n % 10;
			if (csc < csk)flag = 2;
			else return 0;
		}
	}
	return 1;
}

Bị tràn số rồi :smiley: bạn muốn độ dài bất kì thì phải nhập string, còn thoải mái hơn thì char[100].

3 Likes

Số nguyên (intlong) chỉ có số lượng chữ số hạn chế.
Dùng chuỗi thì mới được.

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