重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
continue是用于节约时间的。
成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、成都网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的西工网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
当发现当前的max的值比该列某个值大(于是可以确定这个值不是该列最小,即不可能是鞍点),就不必再检查该列的其他值了。
当然,检查了也无所谓,反正已经变成0的flag是不可能恢复成1的,所以是无效操作。
#include "stdafx.h"
#includestdio.h
void main(){
int i,j,a[4][5];
int k,g,min,max;
for(i=0;i4;i++)
for(j=0;j5;j++)
scanf("%d",a[i][j]);
for(i=0;i4;i++){
max=a[i][0];
for(j=1;j5;j++)
if(a[i][j]max)
{max=a[i][j];
k=j;
}
}
for(i=1;i4;i++){
min=a[0][k];
if(a[i][k]min)
min=a[i][k];
}
if(max==min)
printf("andian is %d",max);
else
printf("no andian");
}
已经编译通过。你的错误是:
①if(max==min)其中为==并不是=;
②最后少一个大括号,否则程序不完整,无法结束。
#includelt;stdio.hgt;
#define N 3
#define M 4
int main()
{
int i,j,k,max,min;
int array[N][M];
printf("请输入数组元素:\n");
for(i=0;ilt;N;i++)
{
for(j=0;jlt;M;j++)
scanf("%d",arraylt;igt;[j]);
}
printf("数组有:\n");
for(i=0;ilt;N;i++)
{
for(j=0;jlt;M;j++)
printf("%-5d\t",arraylt;igt;[j]);
printf("\n");
}
for(i=0;ilt;N;i++)
{
max=arraylt;igt;[0];//用列来进行当前行来比较
for(j=0;jlt;M;j++)
{
if(maxlt;arraylt;igt;[j])
max=arraylt;igt;[j];
k=j;//记录下当前一行中最大的小标
}
min=array[0][k];
for(j=0;jlt;N;j++)//用行来进行列比较
{
if(mingt;arraylt;igt;[k])//若在该列中有更小的,则赋值与min
min=arraylt;igt;[k];
}
if(min==max)
{
printf("小标为%d,%d,鞍点为:%d",i+1,k,max);
}
}
printf("搜索结束\n");
return;
}
扩展资料:
define作用
被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。宏定义是由源程序中的宏定义命令完成的。宏代换是由预处理程序自动完成的。
宏定义的作用范围仅限于当前文件,即file1.c中定义#define PI 3.14,在file2.c中该宏定义不起作用;
通过将#define PI 3.14定义在common.h中,file1.c和file2.c分别#include"common.h"的方式,该宏定义在file1.c和file2.c中都起作用。
在C或C++语言中,“宏”分为有参数和无参数两种。
参考资料:
百度百科——define(计算机专业用语)
#includestdio.h
#define N 3
#define M 4
int main() {
int a[N][M],max,min,i,j,m,n;
printf("请输入数组:\n");
for(i = 0;i N;i++)
for(j = 0;j M;j++)
scanf("%d",a[i][j]);
for(i = 0;i N;i++) {
for(j = 0;j M;j++)
printf("%5d",a[i][j]);
printf("\n");
}
for(i = 0;i N;i++) {
max = a[i][0]; // max被赋予本行中的第一个值
for(j = 0;j M;j++) {
if(max a[i][j]) {
max = a[i][j];
m = j;
}
}
min = a[0][m]; // min被赋予0行m列的值
for(j = 0;j N;j++) { // 不应该使用i作为循环变量
if(min a[j][m]) {
min = a[j][m];
n = j;
}
}
if(min == max) printf("鞍点为:a[%d][%d] = %d\n",m,n,max);
}
printf("搜索结束\n");
return 0;
}
#includestdio.h
int main()
{
int a[4][4]={{2,3,9,5},{6,7,8,3},{0,5,7,5},{2,1,8,3}};
int i,j,k,i0,j0,find=0;
printf("数组a:\n");
for(i=0;i4;i++)
{
for(j=0;j4;j++)
printf("%3d",a[i][j]);
printf("\n");
}
for(i=0;i4;i++) //穷举所有的行
{
j0=0;
for(j=1;j4;j++)
if(a[i][j]a[i][j0])j0=j; //找到第i行上最大的数a[i][j0]
k=1;
for(i0=0;i04;i0++) //对找到的该数穷举所有行
if(a[i0][j0]a[i][j0])k=0; //如它不是本列上最小的数就“一票否决”
if(k) //若确认是,就输出,并记录已找到
{
printf("鞍点是:a[%d][%d]=%d\n",i,j0,a[i][j0]);
find=1;
}
}
if(!find) //若未找到,则输出提示信息
printf("此数组无鞍点!\n");
return 0;
}