一、實驗目的
實驗目的:練習多維陣列的用法
二、實驗原理
1、資料結構的設計(寫出構造的資料型別,即自己定義的結構體)
本實驗沒有用到自己定義資料型別
2、演算法分析(演算法用流程圖或自然語言)
先定義四行五列行列式以及各種變數,輸入行列式,開始假設a[i][0]最大,找出第i行最大的數,對這個數的列號進行儲存,再判斷這個數是否為該列最小的數,用1表示是鞍點,0表示否,若是輸出鞍點;若不是,跳出回圈輸出Not found.
三、主要資料結構和演算法
四、實驗結果及分析
1、源程式(見附錄)
2、測驗結果截圖 (寫出測驗程式的資料,至少寫三組資料,并把每組測驗結果截圖)
(1)第一組測驗資料及結果截圖
1 2 3 4 11
2 4 6 8 12
3 6 9 10 15
4 8 12 16 7

(2)第一組測驗資料及結果截圖
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20

(3)第一組測驗資料及結果截圖
1 2 3 4 11
2 4 6 8 10
3 6 9 10 15
4 8 12 16 20

五、心得體會(自己在編程程序中對語法,寫代碼風格,實驗本身的理解,以及以后寫程式注意的問題)
1. 開始時假設a[i][0]最大,找出各行最大值和該數的列號進行儲存;
2.了解break和continue的區別;
3.注意不符合條件時輸出要跳出for回圈
#include<stdio.h> #define N 4 #define M 5 int main() { int i,j,k,a[N][M],max,maxj,flag; for(i=0;i<N;i++) for(j=0;j<M;j++)//數列為四行五列; scanf("%d",&a[i][j]); for(i=0;i<N;i++) { max=a[i][0];//開始時假設a[i][0]最大; maxj=0;//默認為0; for(j=0;j<M;j++)//找出第i行中最大的數; if(a[i][j]>max) { max=a[i][j];//將本行最大的數存入max; maxj=j;//最大數的所在列號存入maxj; } flag=1;//假設是鞍點,以1表示; for(k=0;k<N;k++) { if(max>a[k][maxj]) { flag=0; continue; } } if(flag) { printf("a[%d][%d]=%d\n",i,maxj,max); break; } } if(!flag)//如果flag為0表示鞍點不存在; { printf("Not found."); } return 0; }
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/285693.html
標籤:其他
上一篇:經典實驗--個人所得稅計算器
下一篇:經典實驗--輸出鞍點
