C語言:輸入一個不確定位數的正整數,把位數翻轉出來!
阿新 • • 發佈:2019-01-08
Code:
- /*給一個正整數,要求:
- 1.求出它是幾位數;
- 2.分別輸出每一位數字;
- 3.按逆序輸出各位數字,
- */
- #include <stdio.h>
- #include <math.h>
- void main()
- {
- int a,b,c,d,i=0;
- int sum = 0;
- int *p = newint[];
- 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;
}