平时笔记之数与数组的转换
#include <stdio.h>
#include <stdlib.h>
void NumToArr(int num,int *arr);
int GetNumD(int num);
int ArrToNum(int *arr,int n);
void NumToArr(int num,int *arr)
{
int NumD=0;
int i=0;
int a=num,b;
NumD=GetNumD(num);
for(i=0;i<NumD;i++)
{
b=a%10;
a=(a-b)/10;
arr[i]=b;
}
}
int GetNumD(int num)
{
int count=0;
if(num==0)
count=1;
while(0 != num)
{
num /= 10;
count++;
}
return count;
}
int ArrToNum(int *arr,int n)
{
int i=0,s=1;
int num=0;
for(i=0;i<n;i++)
{
num += arr[i]*s;
s*=10;
}
return num;
}
int main()
{
int n=151354546;
int i;
int* p;
p = (int *) malloc (sizeof(int)*GetNumD(n));
NumToArr(n,p);
for(i=0;i<GetNumD(n);i++)
printf("%d ",p[i]);
free(p);
return 0;
}