题目:给定一个正的三位整数,比如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 = ;
int a = ;
int b = ;
int c = ; scanf_s("%d",&m); c = m / ;
b = (m % ) / ;
a = m - (c*)-(b*); 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);

  

2018.9.13更新

温故而知新,又写了一遍。

int main()
{
//用来保存用户输入的数据
int input = 0; //用来保存提取出来的三个位置的数据
int gewei = 0;
int shiwei = 0;
int baiwei = 0; //用来保存最后输出的那个三位数
int output = 0; scanf_s("%d",&input); gewei = input % 10;
shiwei = (input % 100) / 10;
baiwei = input / 100; output = gewei * 100 + shiwei * 10 + baiwei * 1; printf("%d",output); }

  

c语言实战 逆序一个三位数的更多相关文章

  1. 程序设计入门——C语言 第1周编程练习 1逆序的三位数(5分)

    第1周编程练习 查看帮助 返回   第1周编程练习题,直到课程结束之前随时可以来做.在自己的IDE或编辑器中完成作业后,将源代码的全部内容拷贝.粘贴到题目的代码区,就可以提交,然后可以查看在线编译和运 ...

  2. 网易云课堂_程序设计入门-C语言_第一周:简单的计算程序_1逆序的三位数

    1 逆序的三位数(5分) 题目内容: 程序每次读入一个正三位数,然后输出逆序的数字.注意,当输入的数字含有结尾的0时,输出不应带有前导的0.比如输入700,输出应该是7. 输入格式: 每个测试是一个3 ...

  3. [C语言]逆序的三位数

    ---------------------------------------------------------------------------------------- //  main.c ...

  4. [PTA]7-3 逆序的三位数 (10分)

    要求: 程序每次读入一个正3位数,然后输出按位逆序的数字.注意:当输入的数字含有结尾的0时,输出不应带有前导的0.比如输入700,输出应该是7. 正确思路: 拆分字符串后拼接成整数 1 #includ ...

  5. 题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花 数 ",因为153=1的三次方+5的三次方+3的三次方。

    题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个 "水仙花 数 ", ...

  6. 如何仅用递归函数和栈操作逆序一个栈——你要先用stack实现,再去改成递归——需要对递归理解很深刻才能写出来

    /** * 如何仅用递归函数和栈操作逆序一个栈 * 题目: * 一个栈依次压入1,2,3,4,5,那么从栈顶到栈底分别为5,4,3,2,1. * 将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就 ...

  7. 算法笔记(c++)-使用递归函数逆序一个栈

    ---恢复内容开始--- 使用递归函数逆序一个栈 题目:使用递归函数,不借助其他数据结构逆序一个栈. 我的思路:使用递归函数保存栈中变量. 递归函数分两个,一个获取并移除栈底元素,另一个负责逆序.其实 ...

  8. 仅用递归函数操作逆序一个栈(Swift 4)

    /// 取出栈底的数 func getAndRemoveLastElement(_ items: inout [Int]) -> Int { let value = items.remove(a ...

  9. 水仙花数------"水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。(for循环的嵌套)

    package com.zuoye.test;//打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,//其各位数字立方和等于该数本身.//例如: ...

随机推荐

  1. kali视频(26-30)学习

    第七周 kali视频(26-30)学习 26.KaliSecurity漏洞利用之检索与利用 27.KaliSecurity漏洞利用之Metasploit基础 28.KaliSecurity漏洞利用之M ...

  2. 接口测试基础——第2篇smtplib发送带附件的邮件

    我先给大家补充一个用QQ发送纯文本电子邮件的代码,用QQ的朋友可以参考一下: # coding=utf-8 import smtplib from email.mime.text import MIM ...

  3. asp.net 操作共享目录文件

    背景: 服务器A为程序服务器,服务器B为文件服务器.服务器A的程序需要修改删除服务器B的文件. 实现方式:采用虚拟目录映射 操作步骤: 1.在服务器A与服务器B建立相同账号和密码的windows用户 ...

  4. miniofs 配置使用

    1. rpm  // RPM 包下载 https://github.com/minio/minfs/releases/tag/RELEASE.2017-02-26T20-20-56Z // 安装 yu ...

  5. 错过的sql语句

    总结: 内链接:适合和自己的条件对比,但并没有给出具体条件,要从数据库表里面找,注意有些条件两个表都需要写(嵌套查询貌似也可以 左连接:适合一个表要全部列出来的情况(使用count的时候,注意coun ...

  6. 【openCV学习笔记】【3】高斯模糊一张图片(_cvSmooth相关编译错误)

    代码如下: #include <iostream> #include <opencv/highgui.h> #include <opencv/cv.h> void ...

  7. yum 报错

    Loaded plugins: fastestmirror, prestoLoading mirror speeds from cached hostfileCould not retrieve mi ...

  8. linux下各种颜色文件的意义

    linux下的文件颜色的意义 蓝色表示目录;绿色表示可执行文件;红色表示压缩文件;浅蓝色表示链接文件;灰色表示其它文件;红色闪烁表示链接的文件有问题了;黄色是设备文件,包括block, char, f ...

  9. java代码实现鼠标双击出现画图-----------paint()方法由系统自动调用,且一定是小写的字母p

    总结:在运行过程中,自己不是很认真,没有检查自己写的代码,结果是无论你怎么运行,双击 frame都没用,因为系统根本就没有调用paint()方法绘图.所以很重要的是实现这个方法 package com ...

  10. Vue.js:路由

    ylbtech-Vue.js:路由 1.返回顶部 1. Vue.js 路由 本章节我们将为大家介绍 Vue.js 路由. Vue.js 路由允许我们通过不同的 URL 访问不同的内容. 通过 Vue. ...