super春卷 2020-11-27 18:49 采纳率: 0%
浏览 9

#初学 为啥我这个程序得不了满分呀?/明明已经很简洁啦

#include<stdio.h>
int main()
{
    int n,fan=0,i;
    scanf("%d",&n);
    i=n;
    for(;i;i/=10)
    fan=fan*10+i%10;
    printf("%s",fan==n?"TURE":"FALSE");
    return 0;
}

 

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-07-24 21:12
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题:这段代码的功能是什么?请解释代码中的逻辑和实现。 回答: 这段代码的功能是判断输入的整数是否为回文数,即从左向右读和从右向左读都是相同的数字。 代码的逻辑是:
    1. 定义一个整型变量n和一个整型变量fan(代表n的倒序数),以及一个整型变量i。
    2. 通过scanf函数输入一个整数n。
    3. 使用一个for循环,将i初始化为n,每次循环i除以10,直到i为0,循环内部执行以下操作: a. fan乘以10,加上i模10(即i的个位数),实现反转数字的操作。
    4. 使用printf函数输出判断是否为回文数的结果,如果fan等于n,则输出TURE,否则输出FALSE。
    5. 返回0,表示程序正常结束。 案例: 假设输入一个整数12321,根据代码逻辑:
    6. fan初始化为0,i为12321。
    7. 循环迭代,第一次迭代:fan = 010 + 12321%10 = 1,i = 1232;第二次迭代:fan = 110 + 1232%10 = 12,i = 123;第三次迭代:fan = 1210 + 123%10 = 123,i = 12;第四次迭代:fan = 12310 + 12%10 = 1231,i = 1;第五次迭代:fan = 1231*10 + 1%10 = 12312,i = 0。
    8. 输出结果为FALSE。 代码:
    #include<stdio.h>
    int main()
    {
        int n, fan = 0, i;
        scanf("%d",&n);
        i=n;
        for(;i;i/=10)
            fan=fan*10+i%10;
        printf("%s",fan==n?"TRUE":"FALSE");
        return 0;
    }
    
    评论

报告相同问题?