- /*给一个正整数,要求:
- 1.求出它是几位数;
- 2.分别输出每一位数字;
- 3.按逆序输出各位数字,
- */
- #include <stdio.h>
- #include <math.h>
- void main()
- {
- int a,b,c,d,i=0;
- int sum = 0;
- int *p = new int[];
- printf("请输入一个数:");
- scanf("%d",&a);
- //判断这个数字的位数;
- do {
- i++;
- p[i] = a%10;
- a = a/10;
- } while(a != 0);
- //输出动态数组中的值
- d =i;
- while(d!=0){
- printf("%d,",p[d]);
- d--;
- }
- printf("这个数的位数是:%d/n",i);
- //反串打印出这个数值,用到pow函数pow(x,y)-->x的y此方;
- for(c=1;c<=i;c++){
- b = pow(10,c-1);
- sum = b*p[c] + sum;
- printf("%d/n",sum);
- }
- delete[] p;
- }
这里我想到的是用动态数组的方法把每次求余的结果保存来,好像指针也行吧,好久不用了 不是很记得了!
附上动态数组的方法:
int main()
{
//用指针p指向new动态分配的长度为len*sizeof(int)的内存空间
int *p=new int[]; //如果是C++的话这个是不行的,系统会警告说没有给定数组长度。
...........
delete[] p;
return 0;
}