C/C++知识点之c语言实战 逆序一个三位数
小标 2018-09-19 来源 : 阅读 1894 评论 0

摘要:本文主要向大家介绍了C/C++知识点之c语言实战 逆序一个三位数,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了C/C++知识点之c语言实战 逆序一个三位数,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

题目:给定一个正的三位整数,比如123,输出321,但如果是700,输出必须是7不能是007
思路是怎么样的呢?
假设这个正三位数是m,它的百分位是c,十分位是b,个位是a,那么就存在下面的等式。
m=c*100+b*10+a*1
现在已知了m,只要知道c、b、a这三个数的值,那么我们直接按abc的顺序输出不就给逆序了吗?
那么怎么知道这三个数的值呢?
首先c是最好求的
c=m/100   //整除的结果就是百位数
利用相似的思路b的值也比较好求。
b=(m%100)/10  //m对100取余之后剩下的就是十位数和个位数的和,和在整除10就是十位数了。
一个等式三个未知数,知道了其中两个,那么第三个就知道了。
a=m-c*100-b*10
恩,解决了啊,写程序。
 

    int m = 0;
    int a = 0;
    int b = 0;
    int c = 0;

    scanf_s("%d",&m);

    c = m / 100;
    b = (m % 100) / 10;
    a = m - (c*100)-(b*10);

    printf("%d%d%d",a,b,c);

 
运行之后,发现没有什么大问题,只是针对700这种情况,输出的还是007,怎么办?怎么办,很急,我一开始还想利用字符输出的,程序崩溃了,没成功。后来一想,既然已经知道了三个位置的数值了,那么直接三个位置的数加一下就行了嘛,反正结果没变,比如输入700,那么c等于7 b等于0 a等于0,那么逆序之后的这个数不就是0*100+b*10+c*1,那么结果不就是7嘛,
最后改成这样就可以了。

        int m = 0;
 int a = 0;
 int b = 0;
 int c = 0;

 scanf_s("%d",&m);

 c = m / 100;
 b = (m % 100) / 10;
 a = m - (c*100)-(b*10);

 printf("%d",a*100+b*10+c);        

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程