Ⅰ 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時得出的是所在列的位置。