一道C語言題目,我的解法

2021-08-30 14:19:53 字數 1098 閱讀 1741

題目:編寫一函式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賦給...