Xin chào mọi người. Hôm nay em có làm 1 bài tập trong ngôn ngữ C như sau: Viết hàm chuyển đổi hệ 10 (hệ thập phân) sang hệ 16 (hệ thập lục phân)
Bài này nghe thoạt đầu có vẻ đơn giản nhưng đối với em thì điều đó có vẻ không đúng lắm.
Dưới đây là đoạn code làm bài của em:
void ChuyenHe(int x, int he)
{
if (he == 16)
{
int bien_phu = 0;
int phantu = 0;
char mang[100];
int a = x;
while (a != 0)
{
int chuso = a % 16;
if (chuso <= 9)
mang[phantu++] = chuso;
else if (chuso == 10)
mang[phantu++] = 'A';
else if (chuso == 11)
mang[phantu++] = 'B';
else if (chuso == 12)
mang[phantu++] = 'C';
else if (chuso == 13)
mang[phantu++] = 'D';
else if (chuso == 14)
mang[phantu++] = 'E';
else if (chuso == 15)
mang[phantu++] = 'F';
bien_phu++;
a /= 16;
}
printf("\nKetqua = ");
for (int i = bien_phu - 1; i >= 0; i--)
{
if (mang[i] >= 48 && mang[i] <= 57)
printf("%d", mang[i]);
else if (mang[i] >= 65 && mang[i] <= 90)
printf("%c", mang[i]);
}
}
else
printf("\nChuong trinh khong ho tro he co so nay\n");
}
int main()
{
int x, he;
printf("\nNhap vao he so: ");
scanf("%d", &he);
printf("\nNhap gia tri can doi: ");
scanf("%d", &x);
ChuyenHe(x, he);
getch();
return 0;
}
Cái duy nhất mà em không làm được đó là ở line 7 . Nếu em để kiểu int
thì kết quả xuất ra chỉ toàn số. Còn nếu em để kiểu char
thì kết quả xuất ra chỉ toàn chữ.
Vậy nên thắc mắc duy nhất của em là có kiểu nào kết hợp cả số và chữ hay không ? Hay đơn giản là giải quyết được vấn đề mảng chứa được cả số lẫn ký tự