1006 換個格式輸出整數 15

2021-08-02 17:27:09 字數 1552 閱讀 3809

1006. 換個格式輸出整數 (15)

第乙個是我寫的,很麻煩。第二個是別人的簡介方案。

在我的方案中,malloc()函式,來動態給指標分配記憶體。這裡需要注意了,

第一:malloc分配記憶體沒有初始化,而且盡量用memset()函式初始化為0(即』\0』)再賦值,不然程式會出現比較麻煩的問題,比如下面這個問題:

首先是分配記憶體大小比目標大小要大的原因(malloc函式說明傳送門):

其實是要注意,在c語言中,字串都是要以『\0』結尾。所以在分配記憶體後立即全部初始化為『\0』是再好不過的了。

然後是strcat()函式在鏈結兩個字串時,也是以第乙個字串』\0』為起始點,第二字串』\0』為終止點來連線的。如下圖:

//讓我們用字母b來表示「百」、字母s表示「十」,用「12...n」來表示個位數字n( < 10),換個格式來輸出任乙個不超過3位的正整數。例如234應該被輸出為bbsss1234,因為它有2個「百」、3個「十」、以及個位的4。

//// 輸入格式:每個測試輸入包含1個測試用例,給出正整數n( < 1000)。

//// 輸出格式:每個測試用例的輸出佔一行,用規定的格式輸出n。

//// 輸入樣例1:

// 234

// 輸出樣例1:

// bbsss1234

//思路 先%10 後/10

#include

#include

#include

#define maxsize 30

void transnum(int num);

int main()

void transnum(int num)

else

if (count == 1)

else

if (count == 2)

}char *sum = (char *)malloc(sizeof(char) * maxsize);

memset(sum,0,sizeof(char) * maxsize);

if (count >= 3)

if (count >= 2)

if (count >= 1)

printf("%s\n",sum);

free(singledigit);

free(tensdigit);

free(hundrendsdight);

free(sum);

}

#include 

int main()

1006 換個格式輸出整數 15

讓我們用字母b來表示 百 字母s表示 十 用 12.n 來表示個位數字n 10 換個格式來輸出任乙個不超過3位的正整數。例如234應該被輸出為bbsss1234,因為它有2個 百 3個 十 以及個位的4。輸入格式 每個測試輸入包含1個測試用例,給出正整數n 1000 輸出格式 每個測試用例的輸出佔一...

1006 換個格式輸出整數 15

讓我們用字母b來表示 百 字母s表示 十 用 12 n 來表示個位數字n 10 換個格式來輸出任乙個不超過3位的正整數。例如234應該被輸出為bbsss1234,因為它有2個 百 3個 十 以及個位的4。輸入格式 每個測試輸入包含1個測試用例,給出正整數n 1000 輸出格式 每個測試用例的輸出佔一...

1006 換個格式輸出整數 15

讓我們用字母b來表示 百 字母s表示 十 用 12.n 來表示個位數字n 10 換個格式來輸出任乙個不超過3位的正整數。例如234應該被輸出為bbsss1234,因為它有2個 百 3個 十 以及個位的4。輸入格式 每個測試輸入包含1個測試用例,給出正整數n 1000 輸出格式 每個測試用例的輸出佔一...