一、实验目的
实验目的:练习多维数组的用法
二、实验原理
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.cnblogs.com/1472683788wan/p/14830033.html