C語言題目 使用遞迴法將整數轉換成字串。 15

2025-01-30 04:10:25 字數 2565 閱讀 2597

c語言題目:使用遞迴法將整數轉換成字串。

1樓:網友

可以這樣用ascii碼來轉換。

ascii碼從48~58分別是0,1,2...9int a=3;

char b;

b=char(a+48);

然後b就是字元'3'了。

#include

char mychar[100];/定義乙個無限大的字元陣列來存放所生成的字元 不過最好使用c的動態記憶體分配。

int i=0;

char* function(int a)if (a<10) {

mychar[i++]char(48+a);

return mychar;

function(a/10);

mychar[i++]char(48+a%10);/轉化為字串使用ascii碼來轉換。

return mychar;

void main()

char*a;

int num=0;

scanf("%d",&num);

a=function(num);

printf("轉化為字串後:%s",a);

2樓:旋天渣觀

#include

f(int n)

if (n/10==0) return ;/最高位返回。

else f(n/10);/去掉個位,進入下級遞迴。

printf("%d",n%10)//列印個位。

main()

int n;

scanf("%d",&n);

f(n);

3樓:網友

#include

char a[100];

int i=0;

f(int n)

if(n/10)

a[i++]n%10+'0';/把數字轉成字元。

n=n/10;

f(n);else

a[i++]n;

return;

main()

int n;

scanf("%d",&n);

f(n);a[i]='0';

printf("%s",a);

沒有除錯,演算法就是這樣的。

c語言程式設計:用遞迴法將乙個整數n轉換成字串。

4樓:網友

while的條件是不對的。

n%10!=0 如果n=10 就退出了!

n的值也沒改變 所以是死迴圈。

而且即使改正之後輸出的結果也是與原數相反的。

5樓:網友

#include

void main()

每輸入乙個資料,敲乙個空格,或者敲乙個回車!這是個十位數的的轉換!

你的是不是沒輸入語句啊!沒有n值,所以沒資料吧。

6樓:網友

你不是用遞迴做的,如果只是簡單的輸出,可以這樣做:

void tran(int a)

void main()

用c語言遞迴法將乙個整數化為字串

7樓:一路清晨

int a=1234;

int a_len=3;//a轉化成字串長度減1int aptr=0;

int he=0;

int i=0;

char chara[5]=;

void int_to_char()

a=a-he;//每次a減去a最高位的數值如:1234 減去1000 再遞迴 234 減去200

a_len--;

int_to_ptr();

8樓:網友

只告訴你思路,自己寫**。

為簡單,弄個足足夠大的字元陣列 因為整數最大是9還還是10個數了,忘了,你可以申請陣列長度11或者更大都行。 申請兩個。乙個存倒序,乙個存正序。

在while迴圈中,首先對整數除以10求餘數,c語言是%,這樣最後乙個數字就出來了,+『0』 或者|0x30,得到相應數字的ascii碼,其實就已經把這個數字轉成字元了,存到陣列裡。

然對整數反覆除以10, c語言是(/),取整,方法很簡單,直接把/後的結果=乙個整形變數,直接就是取整了,否則呼叫取整函式也行,那樣麻煩。這樣,最後一位數字被砍掉,因為第2部已經處理過它了。

反覆上面步驟,迴圈,直到最後乙個數字,(判斷條件為%10的餘數為0), 說明所有數字處理完了,迴圈終止,在這中間過程最後有個計數器,計下你共存了多少個數,做為第5步的長度。

由於這時候得到的陣列是倒的,也就是從最後乙個數字開始儲存的,要把它倒過來,存到另外一陣列裡。這部用乙個for迴圈就搞定。

不好意思,我的答案是非遞迴的。

遞迴更簡單,#include

void convert(int n)

如果要把結果存到陣列裡,自己調整一下吧。

簡單的c語言遞迴問題

9樓:

先儲存下 你沒看家 前面有個* 麼,重新編譯下,

c語言程式設計用遞迴法將整數n轉換成字串

1 新建一個工程和.c檔案 輸入標頭檔案和主函式。2 宣告被呼叫的函式,定義變數型別。3 輸入整數。4 用一個if語句去判斷整數是否為負數,若為負數則用putchar函式輸出一個負號。5 呼叫一個函式。6 定義函式的返回型別和形參型別。7 通過if語句判斷該數是否僅剩一位數,若不是則執行else語句...

請問C語言中,用遞迴將整數轉換成字串時,為什麼每次都要

舉個例子 5 0 5 你要知道5作為字元輸出時看不到的,因為它不是字元 5 有嗎?是最後加一個 0?或者每次 0 因為 0 為字元,加過之後就把結果也變成字元了。c語言程式設計 用遞迴法將一個整數n轉換成字串。1 新建一個工程和.c檔案 輸入標頭檔案和主函式。2 宣告被呼叫的函式,定義變數型別。3 ...

用遞迴法寫出123100的程式c語言

include int sum int n int main include int sum int n return 0 int main int fun int s else int main c語言中 用遞迴怎麼求1 2 3 4 100 是遞迴,沒有遞推一說,只有遞迴和迴圈兩種,或者直接計算,...