PTA——逆序的三位数

程序每次读入一个正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: 存储用户输入的整数。
    • abcd: 分别用于存储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的值进行后续的计算。

 

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值