PTA——逆序的三位数

发布时间:2024年01月03日

程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

输入格式:

每个测试是一个3位的正整数。

输出格式:

输出按位逆序的数。

输入样例:

123

输出样例:

321
#include<stdio.h>
int main()
    {
    int x,a,b,c,d,sum;
    scanf("%d",&x);
    a=x%10;
    b=x/100;
    c=x%100;
    d=c/10;
    sum=a*100+b+d*10;
    printf("%d",sum);
    return 0;
    }
        
       
   

分析:

这段代码的目的是读取一个整数x,并基于这个整数的各个数字位上的数值重新组合并求和,最后输出这个和。

以下是代码的思路总结和解题思路:

  1. 变量定义:

    • x: 存储用户输入的整数。
    • a,?b,?c,?d: 分别用于存储x的个位、百位、十位和个位。
    • sum: 用于存储重新组合后的数字的和。
  2. 输入:

    • 使用scanf函数读取用户输入的整数x
  3. 计算:

    • a=x%10;: 通过取模操作获取x的个位数。
    • b=x/100;: 通过整数除法获取x的百位数。
    • c=x%100;: 通过取模操作获取x的十位数。
    • d=c/10;: 通过整数除法获取x的个位数(这里可能有个逻辑错误,因为c已经是十位数,所以这一步其实没有意义)。
    • sum=a*100+b+d*10;: 根据重新组合的原则,计算总和。例如,如果输入是123,则计算过程为:a=3, b=2, c=12, d=12/10=1.2(但这里取整数为1)。所以sum=300+2+10=312。
  4. 输出:

    • 使用printf函数输出重新组合后的数字的和。
  5. 返回值:

    • return 0;: 表示程序正常结束。

需要注意的是,代码中存在一个逻辑错误:d=c/10;这一步是多余的,因为c已经是十位数。正确的逻辑应该是直接使用c的值进行后续的计算。

?

文章来源:https://blog.csdn.net/m0_74316503/article/details/135317347
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。