01/10/2018, 10:08

Mọi người giúp mình sửa cái code này với

Đề bài: Nhập số một số nguyên dương n (n > 0) và xét xem số đó có phải là số đối xứng hay không? VD: 121,…

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    int n;
    do
    {
        printf("
Nhap so nguyen duong (n >0) n:");
        scanf("%d", &n);
        if(n <= 0)
        {
            printf("
Gia tri cua n khong hop le. Vui long kiem tra va nhap lai!");
        }
    }while(n <= 0);

    int temp  = n;
    int dem = 0;
    int sodaonguoc = 0;
     dem = log10((double)temp);

     while(temp != 0)
     {
         int chuso = temp % 10;
         temp /= 10;
         sodaonguoc =  sodaonguoc + chuso * pow(10.0, dem--);
     }
     printf("So dao nguoc cua so %d la so %d.", n, sodaonguoc);

     if(n == sodaonguoc)
     {
         printf("Day la so doi xung");
     }
     else
     {
         printf("Day khong phai la so doi xung");
     }



    return 0;
}

Mình thử với số 1661 thì được mà với số 121 thì không được. Chẳng hiểu sao nữa?

rogp10 viết 12:13 ngày 01/10/2018

Tính số nguyên thì đừng xài pow

Nó ntn: 1337 = 133*10+7.

Bài liên quan
0