设为首页 加入收藏

TOP

c语言经典例题:正整数求位数and求顺、逆序位数
2018-05-21 15:48:14 】 浏览:254
Tags:语言 经典 例题 整数 位数 and 求顺

c语言经典例题:正整数求位数and求顺、逆序位数

题目要求:

给出一个int整形正整数,要求:

1.求出它是几位数字

2.按照逆序分别输出每位数字,例如123输出为321

3.按正序输出每位数字

分析:

一:求几位数 设置一个计数器count

1234 -> 123 去掉一个4,count+1

123 -> 12 去掉一个3,count+1

12 -> 1 去掉一个2,count+1

1 -> 空 去掉一个1,count+1

而怎么去掉这个4、3、2、1呢?

int整形除以10,可以去掉个位。即:1234/10 = 123

所以代码如下:

\

程序出现错误,Figure(0)应该输出的结果为1,结果代码中没有考虑到n=0的情况。所以我们需要添加一条if()语句。

代码如下:

if(n == 0)

{

count = 1;

}

二:按照逆序分别输出每一位数字,123则输出321.

这里请看一中的分析,我们分别去掉了4、3、2、1,那么正好是1234的逆序输出。

4:1234求10的余数,得到4

123:1234除以10.得到123

所以代码如下:

\

三:按正序输出每位数字

还按照一中的思路:

1234 ->1,从1234中挑出一个1,需要:1234除以1000,1000 = 10^3 ,3 = 4 - 1,4为位数。

所以,1 = 1234/(10^(count - 1));

1234 ->234; 234 = 1234 - 1000;

234 -> 2 ,从234中挑出2·····

代码如下:

\

最后贴一下源代码:

#include

int Figure(int n)//定义函数:求出n的位数

{

int count = 0; //初始化计数器,为0;

if(n == 0) //当n = 0时,这里所有的n = 0是都单独拿出来讨论。

{

count = 1;

}

while(n != 0)

{

count++;

n /= 10;

}

return count;

}

void NIeverynum(int n) //定义函数:逆序输出每一位数字

{

int wei; //逆序的每一位数字

printf("逆序输出结果为:");

if(n == 0) //同样单独讨论n = 0时,下面再出现时不再注释

{

wei = 0;

printf("%d ",wei);

}

while(n != 0)

{

wei = n % 10; //得到个位的数字

n /= 10; //n变成删除个位的数字

printf("%d ",wei);

}

printf("\n");

}

void Shuneverynum(int n) //定义函数:顺序输出每一位数字

{

int swei; //顺序的每一位数字

int count = Figure(n); //求n是几位数字,调用Figure函数,Figure函数的返回值为位数;

int power = 1; //这里用一个for语句,求得1 = 1234/(10^count - 1)中的(10^(count - 1))

for(int i = 1;i < count;i++)

{

power *= 10; //即power = 10^(count - 1)

}

printf("顺序输出结果为:");

if(n == 0) //同上例

{

swei = 0;

printf("%d ",swei);

}

while(n != 0)

{

swei = n / power; //顺序的位 = 1234 除以1000

printf("%d ",swei);

n -= swei * power; //例如:123 = 1234 - 1*1000

power /= 10; //100 = 1000 除以 10 然后循环输出顺序位数字

}

printf("\n");

}

int main()

{

printf("%d\n",Figure(123456));

printf("%d\n",Figure(1));

printf("%d\n",Figure(0));

NIeverynum(1234567);

Shuneverynum(1234567);

return 0;

}

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C数据结构之Floyd和Dijstra实现最.. 下一篇程序设计入门——C语言(奇偶个数)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目