30/09/2018, 20:04
Tìm số đối xứng trong C
Chào mọi người, em mới học C về vòng lặp và đang bị lấn cấn bài này mong mọi người giúp em với.
Đây là code của em nhưng còn thiếu mong mọi người chỉ em thêm ạ:
Đề bài: Nhập vào số nguyên dương n. Hãy tìm và in ra các số đối xứng trong khoảng từ 1 đến n.
void main()
{
int n;
int m; //lưu lại giá trị của n
int dao; //số đảo
int dx; //lưu số đối xứng
int d;
printf("Nhap n:"); scanf("%d", &n);
for (int i = 1; i < n; i++)
{
m = n;
//tìm số đảo của n
dao = 0;
while (m > 0)
{
d = m % 10; //lấy chữ số phải nhất của m
dao = 10 * dao + d; //thêm chữ số phải nhất vào đảo
m /= 10; //xóa chữ số phải nhất của m
}
dx = (dao == n ? 1 : 0);
}
}
Bài liên quan
mình thấy bài bạn làm có vẻ là kiểm tra xem n có đối xứng hay không. Yêu cầu là tìm số đối xứng trong khoảng 1 đến n.
m = n;
nên thay bằngm = i;
dx = (dao == n ? 1 : 0);
thay bằngdx = (dao == i ? 1 : 0);
rồi cuối vòng lặp for thì chắc cũng phải in ra số nếu đối xứng chứ nhỉ?
if(dx == 1) printf("%d ",i);