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

2021-03-04 05:37:09 字數 2919 閱讀 8735

1樓:用著追她

1、新建一個工程和.c檔案 ,輸入標頭檔案和主函式。

2、宣告被呼叫的函式,定義變數型別。

3、輸入整數。

4、用一個if語句去判斷整數是否為負數,若為負數則用putchar函式輸出一個負號。

5、呼叫一個函式。

6、定義函式的返回型別和形參型別。

7、通過if語句判斷該數是否僅剩一位數,若不是則執行else語句。

8、編譯執行。

2樓:匿名使用者

while的條件是不對的

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

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

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

3樓:匿名使用者

#include

void main()

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

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

4樓:匿名使用者

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

void tran(int a)

void main()

看不懂**:用遞迴法將一個整數n轉化成字串。

5樓:凌亂心扉

#include<stdio.h>

void convert(intn){

int i;

if ((i=n/10)!=0)

convert(i);

putchar(n%10+'0');

}int main(){

int num;

scanf("%d",&num);

if(num<0){

printf("-");

num=-num;

}convert(num);

printf("\n");

return0;

}main()應用:

c++中的main函式

c++繼承了c語言的大部分特性,因此保留了「程式總是從main函式開始執行,且總是預設從main函式的return語句或結尾處結束執行」這一傳統,

但是要注意,c++中的main函式要想作為程式執行的出入口,必須寫在全域性(global)範圍,不能寫成某個結構體或某個類的成員。

雖然main函式可以作為結構體或者類的成員函式,但相應地會失去作為程式出入口的功能。

c++中全域性main函式的書寫格式與c語言完全相同,功能也完全相同,且同一c++程式同樣只能有一個全域性main函式。

java中的main函式

java同樣是以main函式作為程式執行出入口的,但java作為「更純潔」的面嚮物件語言,它的main函式與c/c++有很大的不同。

其次,java中所有的函式必須屬於類,沒有什麼全域性函式一說,因此main函式不能是全域性成員,必須是某個類的成員。

第三,由於main函式變成了類的成員函式,因此要想直接被系統呼叫,還必須使用public static使其成為靜態函式並具有公開許可權。

第四,main函式的引數被簡化,只需要提供字串陣列即可,不需要提供引數個數(這是由於java的陣列具有下標檢查功能的原因)

public class maindemo

}c#中的main函式

c#中的main函式與java大同小異,同樣必須是類成員,同樣使用字串陣列作唯一引數,同樣是靜態函式,同樣的void main,

與之不同的是:main的首字母變成了大寫,即"main函式「,且是否限定為public級別已經無所謂了(預設沒有public,但某些場合可能還是需要public)

另外,需要注意的是,c#中不再有」類名必須與主檔名同名「的限制,即使類名不和主檔名相同,程式照樣可以執行。

c#應用程式中的main函式預設是這樣的(注意main的首字母已是大寫)

c#和c/c++、java不同的是c#不在拘泥於必須從main()函式開始執行,c#是屬於事件觸發。

class program}

6樓:匿名使用者

關鍵的部分:遞迴,初學者會搞不明白,但一旦搞清遞迴原理,就會覺得很簡單。

一個整數 3456 要變成 '3456'

只要反覆除以10, 商 345, 餘數就是 6那 345 可以再次呼叫自已進行處理,6就可以+'0' 輸出了,

7樓:匿名使用者

//總思想是:從右向左逐位輸出後,使原數去除最後一位(已輸出),重複以上操作,直到沒有位數可輸出為止(0不可能是最高位)。

void convert(int n)

c語言:用遞迴法講一個整數n轉換成字串。例如輸入483,應輸出字串「483」,n的位數不定,為任意位數整

8樓:4747哦

輸入一個十進位制bai數,輸du出它的二進位制數zhi,這狠類似#include

void fun(int n, int r)main()

9樓:あ耨多羅

n%10 這是對10取餘數,bai

如n=2345 時 n%10=5 ,n%10+'0' 就是在du'0' 的ascii碼值

zhi上再加上daon%10得到的值,如'0' 的ascii碼值是48,n%10+'0'=5+48=53。這麼做是因為

回ascii碼錶中數字字答

符是從0到9升序排列的,這樣寫就不用去考慮'0' 的ascii碼值是多少了。

至於為什麼用putchar而不用printf,其實putchar()函式的作用等同於printf("%c", ch),所以用printf也是可以的。只是putchar()的功能就是輸出一個字元,不需要格式化,這種場合下比printf方便。

10樓:人生笑

為什麼是逆迴圈輸出的

用遞迴法寫出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 是遞迴,沒有遞推一說,只有遞迴和迴圈兩種,或者直接計算,...

c語言實驗題用遞迴法求兩個正整數y的最大公約

1 首bai先開啟vc6.0,新建一個duvc專案。2 新增 zhi標頭檔案。3 新增main主函dao數體。4 定義 回a b t r四個變數。5 使答用scanf給a b變數賦值。6 如果 a b,交換a b。7 使用while不斷求餘。8 使用printf列印最大公約數和最小公倍數。10 執行...

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

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