演算法筆記 刷題2 5

2021-10-19 08:10:37 字數 4943 閱讀 8465

b 習題6-5 陣列元素逆置

c 習題6-6 楊輝三角

d 習題6-12 解密

e 習題6-13 字串比較

f 例題6-1 逆序輸出陣列元素

b 習題6-5 陣列元素逆置

g 例題6-2 陣列求解fibonacci數列問題

h 例題6-3 氣泡排序

i 例題6-4 矩陣轉置

j 例題6-9 字串求最大值

有乙個已排好序的陣列,要求輸入乙個數後,按原來排序的規律將它插入到陣列中。

假設陣列長度為10,陣列中前9個數(這9個數要求從鍵盤上輸入,輸入時要滿足自小到大的輸入順序)已經按從小到大進行排序。

然後再從鍵盤上輸入乙個整數,將此整數插入到前有序的9個數中,使得最終的10個數依然是從小到大有序的。

第一行輸入以空格分隔的9個整數數,要求按從小到大的順序輸入。

第二行輸入乙個整數

從小到大輸出這10個數,每個數一行。

1 11 21 31 41 51 61 71 81

45

1

1121

3141

4551

6171

81

#include

intmain()

scanf

("%d"

,&x)

;for

(i=0

;i<

10;i++

)break;}

else

}return0;

}

將乙個長度為10的整型陣列中的值按逆序重新存放。

如:原來的順序為1,2,3,4,5,6,7,8,9,0,要求改為0,9,8,7,6,5,4,3,2,1

從鍵盤上輸入以空格分隔的10個整數。

第二行輸入乙個整數

按相反的順序輸出這10個數,每個數占一行。

1 2 3 4 5 6 7 8 9 0
098

7654

321

#include

intmain()

for(i=

9;i>=

0;i--

)return0;

}

按要求輸入如下格式的楊輝三角

11 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

最多輸出10層

輸入只包含乙個正整數n,表示將要輸出的楊輝三角的層數。

第二行輸入乙個整數

對應於該輸入,請輸出相應層數的楊輝三角,每一層的整數之間用乙個空格隔開

5
1

1 11 2 1

1 3 3 1

1 4 6 4 1

#include

intmain()

for(i=

3;i<=n;i++)}

for(i=

1;i<=n;i++

)printf

("\n");

}return0;

}

有一行電文,已按如下規律譯成密碼:

a–>z a–>z

b–>y b–>y

c–>x c–>x

… …即第乙個字母變成第26個字母,第i個字母變成第(26-i+1)個字母,非字母字元不變。要求根據密碼譯回原文,並輸出。

輸入一行密文

解密後的原文,單獨佔一行。

zyx123zyx
abc123abc
字串陣列要用 char a

#include

intmain()

elseif(

(a[i]

>=

'a')

&&(a[i]

<=

'z')

)else

i++;}

return0;

}

比較兩個字串s1和s2的大小,如果s1>s2,則輸出乙個正數;若s1=s2,則輸出0;若s1

輸入2行字串

乙個整數,表示這兩個字串 比較的差值,單獨佔一行。

and

aid

5

#include

intmain

(void

)else

}return0;

}

從鍵盤上輸入10個整數,儲存在乙個長度為10的整型陣列中,要求將輸入的10個數逆序輸出。

如輸入為:0,1,2,3,4,5,6,7,8,9 輸出為9,8,7,6,5,4,3,2,1,0

10個整數,以空格分隔

將輸入的10個整數逆序輸出,每個數占一行。

0 1 2 3 4 5 6 7 8 9
987

6543

210

#include

intmain()

for(i=

9;i>=

0;i--

)return0;

}

將乙個長度為10的整型陣列中的值按逆序重新存放。

如:原來的順序為1,2,3,4,5,6,7,8,9,0,要求改為0,9,8,7,6,5,4,3,2,1

從鍵盤上輸入以空格分隔的10個整數。

第二行輸入乙個整數

按相反的順序輸出這10個數,每個數占一行。

1 2 3 4 5 6 7 8 9 0
098

7654

321

#include

intmain

(void

) i--

;while

(i>=0)

return0;

}

fibonacci數列的特點:第1,2個數為1,1。從第3個數開始,概述是前面兩個數之和。即:

要求輸出fibonacci數列的前20個數。

無fibonacci數列的前20個數,每個數占一行。

112

35813

2134

5589

144233

377610

9871597

2584

4181

6765

#include

intmain

(void

)return0;

}

從鍵盤上輸入10個整數,用冒泡法對這10個數進行排序(由小到大)。

以空格分隔的10個整數

依次輸出排好序的10個整數,每個數占一行。

1 3 5 7 9 2 4 6 8 0
012

3456

789

#include

intmain

(void

)for

(j=9

;j>=

0;j--)}

}for

(i=0

;i<=

9;i++

)return0;

}

將乙個2行3列的矩陣(二維陣列)行列互換,儲存到另乙個3行2列的矩陣中。

要求以整型資料為例來解答。

輸入2行資料,每行3個整數,以空格分隔。

行列互換後的矩陣,3行,每行2個資料,以空格分隔。

1 2 3

4 5 6

1 4

2 53 6

#include

intmain

(void)}

for(j=

0;j<

3;j++

)printf

("\n");

}return0;

}

從鍵盤上輸入3個字串,求出其中最大者。

輸入3行,每行均為乙個字串。

一行,輸入三個字串中最大者。

england

china

america

england
strcmp(字串1,字串2):比較兩個字串大小,結果大於0,則字串1字典序大。

其他字元陣列函式:

strlen(s1):得到\0前的字元個數

strcmo(s1,s2):得到兩個字串按照字典序的大小結果

strcpy(s1,s2):s2複製給s1

strcat(s1,s2):s2接在s1後

sscanf(str,"%d",&n):把字元陣列str的內容以%d的格式寫入n

sprintf(str,"%d",n):把n的內容以%d的格式寫入字元陣列str

#include

#include

intmain

(void

)elseif(

strcmp

(s1,s2)

>0)

else

return0;

}

演算法筆記 刷題2 6

b 習題7 7 複製字串中的母音字母 寫乙個函式將乙個字串按反序存放。在主函式中輸入乙個字串,通過呼叫該函式,得到該字串按反序存放後的字串,並輸出。一行字串。輸入字串反序存放後的字串。單獨佔一行。abcddcbastrlen s1 計算s1字串內的字元數 包括 0 include include i...

演算法筆記 刷題2 2

b 例題1 1 2 按要求輸出資訊 2 c 例題1 2 1 求兩個整數之和 1 d 例題1 2 2 求兩整數數之和 2 e 例題3 5 求一元二次方程的根 f 例題3 9 字元輸入輸出 編寫乙個c程式,要求在螢幕上輸出一下一行資訊。this is my first c program 無this i...

演算法筆記 刷題2 3

b 例題4 2 比較交換實數值 c 例題4 3 比較交換3個實數值,並按序輸出 d 習題4 4 三個整數求最大值 e 習題4 10 1 獎金計算 編寫乙個c程式,要求在螢幕上輸出一下一行資訊。this is my first c program 求一元二次方程ax2 bx c 0的根,三個係數a,b...