Ⅰ c语言 鞍点问题
#include <stdio.h>
void main()
{int i,j,k,t=0,flag=0,m=0,n=0,a[3][4],max,min;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
{ max=a[i][0];
for(j=0;j<4;j++)
if(max<a[i][j])
{max=a[i][j];m=i;n=j;}
for(k=0;k<3;k++)
{min=a[m][n];
if(min>a[k][n])
flag=1; }
if(flag==0)
{t=1;printf("%d\n",a[m][n]);}
flag=0;
}
if(t==0) printf("NO");
}//找矩阵中的鞍点
/*这里做的是3行4列的矩阵,其它矩阵同理,刚开始学C时做的,以前有保存过就从邮箱中翻出来给你了*/
Ⅱ C语言鞍点问题
该程序的代码如下。是很具有人性化的设计方案,希望对你有所帮助。
/*找一个二维数组中的鞍点,即该位置上的元素是该行中最大,在该列上最小,也可能没有鞍点。*/
#include <stdio.h>
#define N 10 /*查找鞍点*/
#define M 10
void main()
{
int i,j,k,m,n,flag1,flag2,a[M][N],max,maxj;
printf("输入行数n:");
scanf("%d",&n);
printf("输入列数m:");
scanf("%d",&m);
for(i=0;i<n;i++)
{
printf("请输入第%d行:",i+1);
for(j=0;j<m;j++)
scanf("%d",&a[i][j]);
}
printf("\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%5d",a[i][j]);
printf("\n");
}
flag2=0;
for(i=0;i<n;i++)
{
max=a[i][0];
for(j=0;j<m;j++)
if(a[i][j]>max)
{
max=a[i][j];
maxj=j;
}
for(k=0,flag1=1;k<n&&flag1;k++)
if(max>a[k][maxj])
flag1=0;
if(flag1)
{
printf("\n第%d行,第%d列的%d是鞍点\n",i+1,maxj+1,max);
flag2=1;
}
}
if(!flag2)
printf("\n矩阵中无鞍点!\n");
}
此外谭浩强版的C程序设计答案可以从下面网址下载
http://wenku..com/view/3a1081116c175f0e7cd13798.html
如果该回答你很满意,别忘记加分哦。呵呵。
Ⅲ c语言求鞍点!
#include"stdafx.h"
#include<stdio.h>
voidmain(){
inti,j,a[4][5];
intk,g,min,max;
for(i=0;i<4;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
for(i=0;i<4;i++){
max=a[i][0];
for(j=1;j<5;j++)
if(a[i][j]>max)
{max=a[i][j];
k=j;
}
}
for(i=1;i<4;i++){
min=a[0][k];
if(a[i][k]<min)
min=a[i][k];
}
if(max==min)
printf("andianis%d",max);
else
printf("noandian");
}
已经编译通过。你的错误是:
①if(max==min)其中为==并不是=;
②最后少一个大括号,否则程序不完整,无法结束。
Ⅳ C语言寻找矩阵的鞍点
1、鞍点为矩阵元素所在行的最大值,以及所在列的最小值。
Ⅳ c语言鞍点问题 5*5
报什么错啊
Ⅵ C语言 找鞍点
#include<iostream>
#include<stdio.h>
using namespace std;
#define M 4
void An()
{
int i,j,t,m,n,k,flag=0,count=0,a[M][M];
for(i=0;i<M;i++)
{
cout<<"输入第"<<i+1<<"行数字:"<<endl;
for(j=0;j<M;j++)
cin>>a[i][j];
cout<<endl;
}
for(i=0;i<M;i++)
{
for(j=0;j<M;j++)
printf("%4d",a[i][j]);
cout<<endl;
}
for(i=0;i<M;i++)
{
t=a[i][0];
m=i;
n=0;
for(j=1;j<M;j++)
if(a[i][j]>t)
{
t=a[i][j];
m=i;
n=j;
}
for(k=0;k<M;k++)
if(t>a[k][n])
flag=1;
if(flag==0)
{
count++;
cout<<"第"<<count<<"个鞍点是:a["<<m<<"]["<<n<<"]="<<t<<endl;
}
else
cout<<"第"<<i+1<<"行无鞍点!"<<endl;
flag=0;
}
}
void main()
{
An();
}
Ⅶ c语言找二维数组鞍点
#include <stdio.h>
#include <stdlib.h>
int main()
{
int M,N;
int a[100][100];
int i,j,k,t,m,x,y,max,min,flag;
printf("input a[M][N]---M,N:");
scanf("%d %d",&M,&N);
printf("input %d number:\n",M*N);
for(i=0;i<M;i++)
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
for(i=0;i<M;i++)
{for(j=0;j<N;j++)
printf("%-5d",a[i][j]);
printf("\n");}
flag=0;
for(i=0;i<M;i++)
{
max=a[i][0];
t=0;
for(j=1;j<N;j++)
{ if(a[i][j]>max)
{max=a[i][j];
t=j;}
max=a[i][t];
}
min=a[0][t];
x=0;
for(m=1;m<M;m++)
{ if(a[m][t]<min)
{
min=a[m][t];
x=m;
}
min=a[x][t];
}
if(max==min)
flag=1,
printf("the andian:%d",max);
}
if(flag==0)
printf("no andian!");
return 0;
}
我原来写的参考一下运行正确
Ⅷ C语言求二维数组的鞍点
前面xoaxa的回答挺正确的,只是在后面输出鞍点的时候出错了,应该把行列位置交换下,求min时的得出位置是行的位置,求max时得出的是所在列的位置。