題目1·幻方矩陣
檢驗並列印幻方矩陣
幻方矩陣是指該矩陣中每一行、每一列、每一對角線上的元素之和都是相等的。從鍵盤輸入乙個5×5的矩陣並將其存入乙個二維整型陣列中,檢驗其是否為幻方矩陣,並將其按指定格式顯示到螢幕上。
輸入格式: 「%d」
輸出格式:
如果是幻方矩陣,輸出提示資訊: 「it is a magic square!\n」
矩陣元素的輸出: 「%4d」(換行使用"\n")
如果不是幻方矩陣,輸出提示資訊: 「it is not a magic square!\n」
輸入樣例1:
17_24_1_8_15
23_5_7_14_16
4_6_13_20_22
10_12_19_21_3
11_18_25_2_9
(輸人樣例中「_」代表空格)
輸出樣例1:
it is a magic square!**
17**24
***1
***8
**15*
*23**
*5**
*7**
14**16
***4
***6
**13*
*20**
22**10
**12*
*19**
21***
3**11
**18*
*25**
*2**
*9
(輸出樣例中「*」代表空格)
輸入樣例2:
1_0_1_6_1
3_1_1_1_1
1_1_1_1_2
1_1_1_1_1
9_1_7_1_1
(輸人樣例中「_」代表空格)
輸出樣例2:
it is not a magic square!
注意:為避免出現格式錯誤,請直接拷貝貼上上面給出的輸入、輸出提示資訊和格式控制字串!
(輸人樣例中「_」代表空格,輸出樣例中「*」代表空格)
程式
#include
#include
#define n 10
void
findsaddlepoint
(int a[
][n]
,int m,
int n)
;void
findsaddlepoint
(int a[
][n]
,int m,
int n)
} min = a[0]
[y];
k =0;
l = y;
for(r =
0; r < m; r++)}
if(x == k && y == l)
}printf
("no saddle point!\n");
return;}
intmain()
findsaddlepoint
(a, m, n)
;return0;
}
題目2·鞍點
請程式設計找出乙個m*n矩陣中的鞍點,即該位置上的元素是該行上的最大值,是該列上的最小值。如果矩陣中沒有鞍點,則輸出「no saddle point!」
已知函式原型:
void findsaddlepoint(int a[n], int m, int n);
在該函式中輸出有無鞍點的資訊。
程式執行結果示例1:
input m,n:3,
3↙input matrix:12
3↙456↙
789↙a[0]
[2] is 3
程式執行結果示例2:
input m,n:3,
4↙input matrix:34
75↙01
82↙93
26↙no saddle point!
程式
#include
#include
#define n 10
void
findsaddlepoint
(int a[
][n]
,int m,
int n)
;void
findsaddlepoint
(int a[
][n]
,int m,
int n)
} min = a[0]
[y];
k =0;
l = y;
for(r =
0; r < m; r++)}
if(x == k && y == l)
}printf
("no saddle point!\n");
return;}
intmain()
findsaddlepoint
(a, m, n)
;return0;
}
題目3·矩陣轉置the_original_matrix_is:
__1__2__3__4__5
__6__7__8__9_10
_11_12_13_14_15
_16_17_18_19_20
_21_22_23_24_25
the_changed_matrix_is:
__1__6_11_16_21
__2__7_12_17_22
__3__8_13_18_23
__4__9_14_18_24
__5_10_15_20_25
(輸出樣例中下劃線「_」代表空格)
輸入樣例2:
4↙輸出樣例2:
the original matrix is:
__1__2__3__4
__5__6__7__8
__9_10_11_12
_13_14_15_16
the changed matrix is:
__1__5__9_13
__2__6_10_14
__3__7_11_15
__4__8_12_16
程式
#include
#include
#define n 10
intmain()
printf
("\n");
}printf
("the changed matrix is:\n");
for(i=
0;i)printf
("\n");
}return0;
}
題目4·蛇形矩陣input n:
5↙ 126
71535
814164
9131722
1012
1821
2311
1920
2425
程式執行結果示例2:
input n:
4↙ 126
7358
134912
1410
1115
16
程式執行結果示例3:
input n:-5↙
input error!
程式執行結果示例4:
input n:
105↙
input error!
程式執行結果示例5:
input n:
w↙input error!
輸入提示資訊:「input n:\n」
輸入錯誤提示資訊:「input error!\n」
輸入格式: 「%d」
輸出格式:"%4d"
資料換行: 「\n」
程式
#include
#define n 100
void
zigzagmatrix
(int a[
][n]
,int n)
;void
zigzagmatrix
(int a[
][n]
,int n)}if
(i%2==1
)}}//處理右下三角,從a[n][n]開始倒序輸出
for(i=
0;i1;i++)}
if(i%2==
1)}}
for(i=
0;i)printf
("\n");
}}intmain()
;printf
("input n:\n");
s =scanf
("%d"
,&n);if
(s <
1|| n <
0|| n >
100)
else
return0;
}
LeetCode刷題記錄一(C)
1 給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 note the returned array m...
刷題記錄(C )02
牛客網刷題 劍指offer 1.題目 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。2.解題思路 從前序遍歷可知,前序遍歷陣列pre的首元素就是二叉樹的根結點,然後根據根結點的值...
刷題記錄09(C )
牛客網刷題 題目 把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。note 給出的所有元素都大於0,若陣列大小為0,請返回0。解題思路 這種二分查詢難就難在,arr mid 跟誰比.我們的目的是 當進行一次比較時,一定能夠...