题目:第十五周第二次作业第二题
代码:
#include<stdio.h>
int main()
{
int s[20][20]={0},a,b,m,n,flag=1,flag_=0;
scanf("%d %d",&m,&n);
for(a=0;a<m;a++)
{
for(b=0;b<n;b++)
{
scanf("%d",&s[a][b]);
}
}
for(a=1;a<(m-1);a++)
{
for(b=1;(b<n-1);b++)
{
if(s[a][b]>s[a-1][b]&&s[a][b]>s[a+1][b]&&s[a][b]>s[a][b+1]&&s[a][b]>s[a][b-1])
{
flag=0;
flag_=1;
}
if(flag==0)
{
printf("%d %d %d\n",s[a][b],a+1,b+1);
flag=1;
}
}
}
if(flag_)
flag=0;
if(flag)
printf("None %d %d",m,n);
}
思路:
第一步:创建二位数列
第二步:按题目要求输入
第三步:创建循环,计算每一个数周围的数是否有这个数大,若是则输出这个数,若不是跳到下一个数
第四步:判断是否有局部最大数,若没有则输出None
流程图:
错误:刚开始审题错误,以为是要找没一行中的极大值,导致输出结果始终是None,重新审题后,没想明白如何判断是否有数输出。
在这周的学习中我学习到了二维数组的使用,对循环的使用更加熟练
刘炜旗:
史泽文: