c语言数组鞍点的实验报告,鞍点问题实验报告.doc

鞍点问题实验报告

深 圳 大 学 实 验 报 告

课程名称: C++程序设计

实验项目名称: 求二维数组中的鞍点

学院: 计算机与软件学院

专业:

指导教师: 张小健

报告人:邓清津 学号: 2011150146 班级: 03

实验时间: 2011-12-2

实验报告提交时间: 2011-12-7

教务部制

实验目的:①熟悉for语句和多重循环。

②熟悉二维数组。

③熟悉最大最小值的判定。

实验要求: 熟悉VC语言

伪代码:

/*找出一个二位数组中的鞍点,即该位置上的元素在该行上最大,

在该列上最小,也可能没有鞍点*/

定义一个二维数组矩阵,为N=4行,M=5列

#define M 4

#define N 5

手动输入4行5列的矩阵int a[N][M]=

{

{},{},{},{},

};

在初值i=0,条件i

找到第i行第0列中的最大数定义为k=a[i][0]。列逐级递增j=j+1,若递增过程中有a[i][j] > k,则k = a[i][j];p = j;

t = a[0][p];int l;l

行逐级递增l=l+1,若递增过程中有a[l][p] < t,

则t = a[l][p];

if(k == t)

则输出鞍点printf("a[%d][%d]=%d\n",i,p,k);

源程序:

#include

#define M 4

#define N 5

void main()

{

int i,j;

intk,t,p,l;

int a[M][N] =

{

{1,2,3,6,7},{0,1,2,5,0},{4,5,5,6,8}, {3,0,0,7,9}

};

printf("数组a :\n");

for(i = 0;i < M;i++)

{

for(j = 0;j < N;j++)

printf("%4d",a[i][j]);

printf("\n");

}

for( i = 0;i < M;i++)

{

k = a[i][0];

for(j = 0; j < N;j++)

{

if(a[i][j] > k)

{

k = a[i][j];

p = j;

}

}

t = a[0][p];

for(l = 0;l < M;l++)

if(a[l][p] < t)

t = a[l][p];

if(k == t)

printf("a[%d][%d]=%d\n",i,p,k);

}

}样本输入与对应的输出:

①输入{1,2,3,6,7},

{0,1,2,5,0},

{4,5,5,6,8},

{3,0,0,7,9}

输出

②输入{5,0,3,6,7},

{0,5,2,5,8},

{4,5,9,6,8},

{3,2,1,7,9}

输出

③输入{5,0,3,6,0},

{0,5,2,5,8},

{4,5,9,6,8},

{3,2,1,7,9}

输出

④输入{1,1,1,1,1},

{0,1,1,1,1},

{0,0,1,1,1},

{0,0,0,1,1}

输出

⑤输入{1,5,1,1,1},

{0,1,0,0,0},

{0,7,1,1,1},

{0,9,0,1,1}

输出

实验心得:

通过学习二维数组的使用编辑寻找二维数组中的鞍点程序,熟悉了对for循环的认识和变量代换,对C++又增长了一定的熟练度,希望通过多加练习之后能够大致掌握一些简单的程序编辑。

指导教师批阅意见:

成绩评定:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值