说明:
前几天写的博客C语言取出一个长整型数中的偶数并构成一个新数案例讲解代码块里有一段是关于把给定的数构成一个新数的内容,评论区有小伙伴留言说不懂其中的原理,今天单独分析一下。
思路分析
我们先看例子:把数字1,2,3构成一个新数123。
我们可以看出:
3是构成新数中的个位上的数,也就是3乘以10的0次方,也可以表示为3乘以1;2是构成新数中的十位上的数,也就是2乘以10的1次方;1是构成的新数中的百位上的数,也就是1乘以10的2次方。然后把他们相加就是构成新数123。
以把数字1,2,3构成一个新数123为例进行代码编写。
代码如下
#include <stdio.h>
#define N 3
void main(){
int arr[N]={1,2,3};//定义一个数组并赋值
int i,sum=0,d=1;
for(i=N-1;i>=0;i--){//逆序遍历数组的数字
sum+=arr[i]*d;//构成新数的个位上的数字需要乘以10的0次方,也可以理解为直接乘以1
d=d*10;/*构成新数的十位上的数字需要乘以10的1次方,
百位上的数字需要乘以10的平方,所以循环的时候d需要累乘10
然后把把他们相加就是构成的新数*/
}
printf("%d",sum);
}
//本例题需要逆序序遍历数组的数字,所以这样写:for(i=N-1;i>=0;i--)
//如果例题需要正序遍历数组的数字,可以这样写;for(i=0;i<N;i++)
//说明:N表示数组的数字个数
代码运行结果如下