實驗8,二維陣列,字串的應用

2021-09-29 20:22:59 字數 3443 閱讀 4079

7-1 二維陣列中每行最大值和每行和 (15 分)

求乙個3*3二維陣列中每行的最大值和每行的和。

輸入格式:

在一行中輸入9個小於100的整數,其間各以乙個空格間隔

輸出格式:

輸出3行3列的二維陣列,並在每行後面分別輸出每行最大值和每行元素的和,每個資料輸出佔4列。

輸入樣例:

3 6 5 9 8 2 1 4 5

輸出樣例:

3 6 5 6 14

9 8 2 9 19

1 4 5 5 10`

#include

max(

int a,

int b)

//定義函式用於求最大值

intmain

(void

),c[3]

=,i,j,m=0;

int a[3]

[3];

for(i=

0;i<

3;i++

)for

(j=0

;j<

3;j++

)scanf

("%d"

,&a[i]

[j])

;for

(i=0

;i<

3;i++

) m=0;

//將m置0用於下一次求最大值

}for

(i=0

;i<

3;i++

)}

7-2 選擇法排序之過程 (20 分)

本題要求使用選擇法排序,將給定的n個整數從小到大排序後輸出,並輸出排序過程中每一步的中間結果。

選擇排序的演算法步驟如下:

第0步:在未排序的n個數(a[0]〜 a[n−1])中找到最小數,將它與 a[0]交換;

第1步:在剩下未排序的n−1個數(a[1] 〜 a[n−1])中找到最小數,將它與 a[1] 交換;

第k步:在剩下未排序的n−k個數()中找到最小數,將它與 a[k] 交換;

第n−2步:在剩下未排序的2個數(a[n−2] 〜a[n−1])中找到最小數,將它與 a[n−2]交換。

輸入格式:

輸入第一行給出乙個不超過10的正整數n。第二行給出n個整數,其間以空格分隔。

輸出格式:

在每一行中輸出排序過程中對應步驟的中間結果,即每一步後a[0]〜 a[n−1]的值,相鄰數字間有乙個空格,行末不得有多餘空格。

輸入樣例:

45 1 7 6

輸出樣例:

1 5 7 6

1 5 7 6

1 5 6 7

#include

main()

else}}

碼片

7-6 矩陣a乘以b (20 分)

給定兩個矩陣a和b,要求你計算它們的乘積矩陣ab。需要注意的是,只有規模匹配的矩陣才可以相乘。即若a有r

​a​​ 行、c

​a​​ 列,b有r

​b​​ 行、c

​b​​ 列,則只有c

​a​​ 與r

​b​​ 相等時,兩個矩陣才能相乘。

輸入格式:

輸入先後給出兩個矩陣a和b。對於每個矩陣,首先在一行中給出其行數r和列數c,隨後r行,每行給出c個整數,以1個空格分隔,且行首尾沒有多餘的空格。輸入保證兩個矩陣的r和c都是正數,並且所有整數的絕對值不超過100。

輸出格式:

若輸入的兩個矩陣的規模是匹配的,則按照輸入的格式輸出乘積矩陣ab,否則輸出error: ca != rb,其中ca是a的列數,rb是b的行數。

輸入樣例1:

2 31 2 3

4 5 6

3 47 8 9 0

-1 -2 -3 -4

5 6 7 8

輸出樣例1:

2 420 22 24 16

53 58 63 28

輸入樣例2:

3 238 26

43 -5

0 17

3 2-11 57

99 68

81 72

輸出樣例2:

error: 2 != 3

#include

intmain

(void);

for(i=

0;i)for

(j=0

;j)scanf

("%d"

,&a[i]

[j])

;scanf

("%d %d"

,&rb,

&cb);if

(ca!=rb)

//用於判斷是否符合矩陣相乘定義

else

;for

(i=0

;i)for

(j=0

;j)scanf

("%d"

,&b[i]

[j])

;// int c[ra][cb]=,k;

for(i=

0;i)for

(j=0

;j)for

(k=0

;k) c[i]

[j]+

=(a[i]

[k]*b[k]

[j])

;//求新矩陣各元素

printf

("%d %d\n"

,ra,cb)

;for

(i=0

;i)printf

("\n");

}}}

7-4 字串反正序連線 (20 分)

將s所指字串的反序和正序進行連線形成乙個新串放在t所指的陣列中。

輸入格式:

在一行輸入乙個長度小於20的字串。在字串中不要出現換行符,空格,製表符。

輸出格式:

直接輸出變化後的字串。

輸入樣例:

abc輸出樣例:

cbaabc

在這裡插入#include

#include

main()

**片

7-5 找最小的字串 (25 分)

本題要求編寫程式,針對輸入的n個字串,輸出其中最小的字串。

輸入格式:

輸入第一行給出正整數n;隨後n行,每行給出乙個長度小於80的非空字串,其中不會出現換行符,空格,製表符。

輸出格式:

在一行中用以下格式輸出最小的字串:

min is: 最小字串

輸入樣例:5li

wang

zhajin

xian

輸出樣例:

min is: jin

#include

#include

intmain

(void

)printf

("min is: %s"

,str1)

;}

二維陣列 字元陣列與字串

要求 了解多維陣列的概念 掌握二維陣列的使用 掌握用字元陣列存放字串的方法 掌握字串的輸入及輸出方法 二維陣列的定義 例 int a 2 3 定義乙個二維陣列 該陣列有2行3列共6個元素 這6個元素都存放int型資料 儲存時先儲存第一行的3個元素,然後再儲存第二行的3個元素 可將此二維陣列看成是乙個...

二維陣列 字串 API

1 二維陣列 陣列中的元素,又指向乙個新的子陣列 何時使用 1.儲存橫行豎列的資料時 2.分組儲存上下級包含關係時 如何建立 1.先建立空陣列,再初始化元素為子陣列 var data data 0 0,0,0,0 data 1 0,0,0,0 何時使用 不確定子陣列的個數或內容時 2.建立時就初始化...

二維陣列,字串,多維陣列

二維陣列 有2個下標的陣列成為二維陣列 定義 型別 陣列名 常量表示式1 常量表示式2 注意事項,二維陣列定義時,可以不指定第一維的長度,但必須給定第二維.例 int 3 字元陣列 用於存放字元變數的陣列成為字元陣列.字元陣列屬於一維陣列,元素型別char 例 char c 20 字元陣列串 存放字...