In từ a->f bị lỗi, bảng mã ascii

Em chào các bác ạ, em đang làm bài tập C , đề bài là nhập 2 số AF thì sẽ in ra A B C D E F hoặc af sẽ in ra a b c d e f . Em có dùng vòng lặp for, và viết được đoạn code như hình, nếu nhập ae hoặc bg thì nó sẽ in bình thường, nhưng nhập af hoặc AF thì nó lại bị lỗi. Em chuyển printf sang %d thì lại thấy nó in từ -61 đến 97. Các bác cho em hỏi đây là vì nguyên nhân gì vậy ạ ? !

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

int main() {
char ch1, ch2,i;
scanf( "%c%c", &ch1, &ch2 );
for(i=ch1;i<=ch2;i++) {
 printf(" %d", i);
}
}

Mình copy chạy lên thì lại ko bị gì. (abcdef hay ABCDEF)

6 Likes

Có bật chế độ gõ tiếng Việt không vậy bạn? Tất nhiên là bạn có thể không thấy, nhưng có nhiều kí tự dạng không hiển thị đấy.
Mình thấy thì nó chạy từ 1 giá trị nào đó đến kí tự a. Tức là nó nhận 1 kí tự nào đó (thứ nhất) rồi đến a (thứ 2), kí tự f (thứ 3) không được nhận.

8 Likes

Bạn thử thêm dấu cách ở đoạn scanf %c%c thành %c %c xem sao nhé.

1 Like

cảm ơn các bác, em sửa được rồi ạ. Em load lại cái ide online rồi viết lại y như hình thì được ạ

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