200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > c语言3%10等于多少 [编程入门]数字的处理与判断-题解(C语言代码)

c语言3%10等于多少 [编程入门]数字的处理与判断-题解(C语言代码)

时间:2018-12-16 20:49:52

相关推荐

c语言3%10等于多少 [编程入门]数字的处理与判断-题解(C语言代码)

# 1009题-[编程入门]数字的处理与判断-题解(C语言描述)

本题解的最终解释权归本人所有,主要用于本班上同学更好的掌握本题的解题方法,同时更好的理解和掌握方法。

------------

### 题目描述

给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123

------------

### 输入

一个不大于5位的数字

------------

### 输出

三行 第一行 位数 第二行 用空格分开的每个数字,注意最后一个数字后没有空格 第三行 按逆序输出这个数

------------

### 样例输入

12345

------------

### 样例输出

5

1 2 3 4 5

54321

------------

### 题目解释

1. 题目要求的第一个条件是:要输出这一个整数是几位数,我们可以通过判断这个数在哪个区间来达到程序的目的。

>例如,当n在10到99的区间内时,则该数为二位数;当n在100到999的区间内时,则该数为三位数,以此类推。

1. 题目要求的第二个条件是:要分别输出该数的每一位数字,我们可以通过运算来提取它的每一位数,这种运算分为**普通运算和特殊运算**。

- 普通运算指的是直接通过运算符来计算所在位数的值,并将值赋值给事先准备的变量当中;而特殊运算则指的是通过特殊的方法进行运算后,将值直接打印输出(这里提供的方法是***递归法***)。

1. 题目要求的第三个条件是:按逆序输出各位数字,例如原数为321,应输出123。我们可以通过循环语句,打印和更改赋值输出的顺序来达到程序的目的

>例如:n=389时,当满足n>0时的前提下,进行如下操作:

>1. 循环第一次,先打印个位数,也就是389%10,这样输出的就是个位数9,且排在了输出的第一位;再者,通过n/10去掉该数的的最低一位,也就是当前的个位数9,并将值赋值回n,n就等于38。

>1. 循环第二次,打印该数的个位数38%10即8,通过n/10去掉该数的的最低一位,也就是当前的个位数8,n就等于3。

>1. 循环第三次,打印该数的个位数3%10即3,再者,通过n/10去掉该数的的最低一位,n就等于0。

>因为n>0不满足,因此退出循环

------------

### 代码

```c

#include "stdio.h"

void prt(int x);//函数声明

int main(int argc, char* argv[])

{

int n;//定义一个整型变量n,n在这里作为用户输入的一个整数(不小于五位数)

int x=1;//定义一个整型变量x且赋初值为1,x在这里作为辅助程序运算操作

int i=1;//定义一个整型变量i且赋初值为1,i在这里作为输出位数的操作(计数)

scanf("%d",&n);//输入一个整数n

//第一步:求出它是几位数

while(n>=x)//循环判断:判断n是否大于x,成立则进行循环;不成立则进行下一条语句

{

if(n<=9)//特殊情况:当n<9时,输出1,表示该数为一位数

{

printf("1\n");

}

x=x*10;//进行特定条件的操作

i++;

if(n>=x && n<=x*10-1)//满足条件进行输出

{

printf("%d\n",i);

}

}

//第二步:分别输出每一位数字

prt(n);//调用自定义的prt子函数(该代码段实现的是每位数字进行分隔的程序操作)

printf("\n");

//第三步:逆序输出各位数字,例如原数为321,应输出123

while(n>0)

{

printf("%d",n%10);//打印出个位数

n=n/10;//去掉最低位并存回去

}

printf("\n");

return 0;

}

void prt(int x)//自定义一个void类型的prt子函数,实现 对每位数字进行分隔的程序操作

{

if(x>10)//满足x>10则进行递归;不满足输出结果

{

prt(x/10);//调用函数自身再进行运算(递归)

}

printf("%d ",x%10);//输出

}

```

------------

编写者:Believe_CH(廖智贤)

0.0分

3 人评分

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。