題目:編寫一函式expand(s1,s2),用以將字串s1中的縮記符號在字串s2中擴充套件為等價的完整字元,例如將 a-d擴充套件為abcd。該函式可以處理大小寫字母和數字,並可以處理a-b-c、a-z0-9與-a-z等類似的情況。在main函式中測試該函式:從鍵 盤輸入包含縮記符號的字串,然後呼叫該函式進行擴充套件,輸出擴充套件結果。
(教材 p63:exercise 3-3)
【輸入形式】
從 鍵盤輸入包含擴充套件符的字串
【輸出形式】
輸出擴充套件後的字串
【輸入樣例】
a-c-u-b
【輸出樣例】
abcdefghijklmnopqrstu-b
【樣 例說明】
擴充套件輸入a-c-u為:abcdefghijklmnopqrstu,而b比u值小,所以無法擴充套件,直接輸出。
我 的演算法思路如下:
1、通過輸入來獲取待擴充套件字元
2、用三個char變數來儲存連續的三個字元
3、對三個char變數進行分析,然 後輸出
**如下:
#include //標準輸入輸出庫
#include //用到儲存字串的函式gets(char *)
#include //基本型別判斷標頭檔案
#define n 10 //限制帶擴充套件字元的寬度
int print1(char,char,char); //帶返回的列印,用返回數字來判斷移進的字元數
void print2(char,char,char); //根據最後三個帶擴充套件字元來列印
void main()
{int i,j; // i 儲存輸入的帶擴充套件字元的個數,j作為迴圈不變數
char first,second,third; //儲存連續的三個字元
char s[n]; //儲存所有待擴充套件字元的陣列
gets(s); //儲存所有待擴充套件字元
i=0;
while(s[i]!='\0')
i++;
if(i<3)
printf("%s",s); //若總待擴充套件字元數小於3,則直接輸出之
else
{for(j=0;j
一道演算法題目的解法
有這樣一道演算法題目 144張牌放到若干的盒子中,每個盒子中放10到 40張,問有多少種放法?不考慮順序 由144 10 14.4 144 40 3.6 可得,盒子的數量最少為4,最多為14.假設有n個盒子 4 n 14 每個盒子中分別放 a1,a2,an 張牌,由於不考慮順序,不妨設a1 a2 a...
記錄一道C語言題目
很簡單的乙個題。磨磨腦子,最近有點手生。題目 統計各位數字之和是5的數 本題要求實現兩個函式 乙個函式判斷給定正整數的各位數字之和是否等於5 另乙個函式統計給定區間內有多少個滿足上述要求的整數,並計算這些整數的和。我講得可能不算很清楚,具體請檢視題目鏈結 實現 include include def...
每天一道C語言題目
從今天開始我每天最少會做一道c語言的題目。題目 include int main 我們知道型別的自動轉換,也就是char進行運算的時候,會自動轉換為int。b 輸出b,b是字元,理所當然輸出 2 然後b 相等於b b 1 b 1的結果是int型別的51,而不是字元 3 只是把這個int型別的51賦給...