#include<stdio.h>
#include<stdlib.h>
int main()
{
int m,p,k,max,lie[3]={0},i,j,a[3][3]={{1,5,3},{7,10,4},{4,9,5}};
for(i=0;i<3;i++)
{
for(j=0,p=0;j<3;j++)
{
max=a[i][0],lie[p]=0;
if (a[i][j]>max)
{
max=a[i][j];
lie[p]=j;
}
}
p++;
}
m=0;
while(1)
{
for(k=0;k<3;k++)
{
if(a[k][lie[m]]>max)
{
printf("a[%d][%d]为鞍点,值为%d\n",k,lie,a[k][lie[m]]);
}
}
m++;
if(m==3)
{
break;
}
}
return 0;
}
请问各位,此题需求矩阵的鞍点,我的代码错在哪,该怎么改呢
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- qzjhjxj 2021-11-23 00:13关注
题主的代码修改如下,供参考:
#include<stdio.h> #include<stdlib.h> int main() { int m,p,k,max,lie[3]={0},i,j,a[3][3]={{1,5,3},{7,10,4},{4,9,5}}; for(i=0;i<3;i++) { max=a[i][0];lie[i]=0; for(j=0;j<3;j++) //for(j=0,p=0;j<3;j++) { //max=a[i][0],lie[p]=0; if (a[i][j]>max) { max=a[i][j]; lie[i]=j; } } //p++; } m=0;i=0; //修改 while(1) { max=a[i][lie[m]]; //修改 for(k=0;k<3;k++) { if(a[k][lie[m]]<max) { max=a[k][lie[m]]; //修改 } } if(max == a[i][lie[m]]) //修改 printf("a[%d][%d]为鞍点,值为%d\n",i,lie[m],a[i][lie[m]]); m++;i++; //修改 if(m==3) { break; } } return 0; }
另一种写法,供参考:
#include<stdio.h> #include<stdlib.h> int main() { int m,p,k,max,min,i,j,a[3][3]={{1, 5,3}, {7,10,4}, {4, 9,5}};// lie[3]={0}, int row=0,col=0; for(i=0;i<3;i++) { max=a[i][0]; for(j=0;j<3;j++) { if (a[i][j]>max) { max=a[i][j]; col = j; } } min=a[0][col]; for(k=0;k<3;k++) { if(a[k][col]<min) { min=a[k][col]; row=k; } } if(max == min) printf("a[%d][%d]为鞍点,值为%d\n",row,col,a[row][col]); } if(max != min) printf("Not exist!\n"); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
- ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
- ¥15 MATLAB中streamslice问题
- ¥15 如何在炒股软件中,爬到我想看的日k线
- ¥15 51单片机中C语言怎么做到下面类似的功能的函数(相关搜索:c语言)
- ¥15 seatunnel 怎么配置Elasticsearch
- ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
- ¥15 (标签-MATLAB|关键词-多址)
- ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
- ¥500 52810做蓝牙接受端