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 輸出格式 每個測試用例的輸出佔一...