當前位置:首頁 » 編程語言 » c語言求二維數組的鞍點
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言求二維數組的鞍點

發布時間: 2022-04-26 11:01:33

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語言課後題,找出一個二維數組中的鞍點

continue是用於節約時間的。
當發現當前的max的值比該列某個值大(於是可以確定這個值不是該列最小,即不可能是鞍點),就不必再檢查該列的其他值了。
當然,檢查了也無所謂,反正已經變成0的flag是不可能恢復成1的,所以是無效操作。

❸ C語言中關於二維數組的「鞍點」問題

#include <stdio.h>
int main()
{
int a[3][3]={7,8,9,4,5,6,1,2,3};
int b[10];
int i,j,hmax,lmin,*p_hmax,*p_lmin;
p_hmax=&hmax;
p_lmin=&lmin; /*i行 j列 hmax行最大 lmin列最小*/
for(i=0;i<=2;i++) /*求出每行的最大數*/
{
hmax=a[i][0];
for(j=0;j<=2;j++)
{
if(hmax<a[i][j])
{
hmax=a[i][j];
}
}
b[i]=*p_hmax;
}

for(j=0;j<=2;j++) /*求出每列的最小數*/
{
lmin=a[0][j];
for(i=0;i<=2;i++)
{

if(lmin>a[i][j])
{
lmin=a[i][j];
}
}
b[j+3]=*p_lmin;
}

for(i=0;i<=2;i++) /*判斷每行的最大數和每列的最小數是否相等*/
if(b[i]==b[i+3])
printf("%d\n",b[i]);
else
printf("沒有鞍點\n");

return 0;
}
你試試吧!!我在vs上調試的

❹ C語言 求二維數組的鞍點問題,急求高手解答!

將下列程序復制到VC運行就好了,我已調試了,是對的
#include<stdio.h>
#define M 3
#define N 3
void main()
{
int a[M+1][N+1],i,j,x;
x=4;
printf("請輸入一個二維數組:\n");
for(i=0;i<M;i++){
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);}
for(i=0;i<M;i++){
a[i][N]=a[i][0];
for(j=0;j<N-1;j++)

if(a[i][j]<a[i][j+1]) a[i][N]=a[i][j+1];}
for(j=0;j<N;j++){
a[M][j]=a[0][j];
for(i=0;i<M-1;i++)

if(a[i][j]>a[i+1][j]) a[M][j]=a[i+1][j];}

for(i=0;i<M;i++)
{

if(a[i][N]!=a[M][i])
a[i][N]=0;
x--;
}
if(x==0) printf("無鞍點!");
else{
printf("此二維數組的鞍點為:\n");
for(i=0;i<M;i++)
if(a[i][N]!=0)
printf("%d ",a[i][N]);
}
printf("\n");

}

❺ 找出一個二維數組中的鞍點,c語言

#include<stdio.h>
#defineN10
#defineM10
voidmain()
{
inti,j,k,m,n,flag1,flag2,a[N][M],max,maxj;
printf("輸入行數n:");
scanf("%d",&n);
printf(" 輸入列數m:");
scanf("%d",&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&a[i][j]);
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(" 第%d行第%d列的%d是鞍點 ",i,maxj,max);
flag2=1;
}
}
if(!flag2)
printf(" 矩陣無鞍點! ");
}

❻ c語言查找二維數組的鞍點 新生求助大佬

C語言查找二維數組的鞍點詳細代碼如圖:

具體思路:

一、先把每行的最大值求出來×到數組;

二、依次遍歷每行,如果其值等於最大值,再判斷在列中是否最小即可。

三、輸出結果。

❼ C語言編程:找出一個二維數組的「鞍點」,即該位置上的元素在該行上最大,在該列上最小。也可能沒有鞍點。

#include"stdio.h"
#defineN10
voidFindSaddlePoint(inta[][N],intm,intn);
intmain()
{
inta[N][N];
inti,j,m,n;
printf("Inputm,n: ");
scanf("%d,%d",&m,&n);
printf("Inputmatrix: ");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
}
FindSaddlePoint(a,m,n);
return0;
}
voidFindSaddlePoint(inta[][N],intm,intn)
{
inti,j,k,sp,p,x,f=0;
for(i=0;i<m;i++)
{
p=0;
sp=a[i][0];
for(j=1;j<n;j++)
{
x=0;
if(a[i][j]>sp)
{
sp=a[i][j];
x=j;
}
}
for(k=0;k<m;k++)
{
if(sp>a[k][x])
break;
else
p++;
}
if(p==m)
{
printf("a[%d][%d]is%d ",i,x,sp);
f++;
}

}
if(!f)
printf("Nosaddlepoint! ");
}

❽ c語言 求二維數組的鞍點

#include&lt;stdio.h&gt;

#define N 3

#define M 4

int main()

{

int i,j,k,max,min;

int array[N][M];

printf("請輸入數組元素: ");

for(i=0;i&lt;N;i++)

{

for(j=0;j&lt;M;j++)

scanf("%d",&array&lt;i&gt;[j]);

}

printf("數組有: ");

for(i=0;i&lt;N;i++)

{

for(j=0;j&lt;M;j++)

printf("%-5d ",array&lt;i&gt;[j]);

printf(" ");

}

for(i=0;i&lt;N;i++)

{

max=array&lt;i&gt;[0];//用列來進行當前行來比較

for(j=0;j&lt;M;j++)

{

if(max&lt;array&lt;i&gt;[j])

max=array&lt;i&gt;[j];

k=j;//記錄下當前一行中最大的小標

}

min=array[0][k];

for(j=0;j&lt;N;j++)//用行來進行列比較

{

if(min&gt;array&lt;i&gt;[k])//若在該列中有更小的,則賦值與min

min=array&lt;i&gt;[k];

}

if(min==max)

{

printf("小標為%d,%d,鞍點為:%d",i+1,k,max);

}

}

printf("搜索結束 ");

return;

}

(8)c語言求二維數組的鞍點擴展閱讀:

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++語言中,「宏」分為有參數和無參數兩種。

❾ c語言編寫程序,找出一個二維數組中的鞍點,即該位置上的元素在該行上最大,在該列上最小,也有可能沒有

#include <stdio.h>
int a[3][4]={0};
int min(int y)//第y+1列的最小值 所在的行
{
int i,temp,min=0;
for(i=1;i<3;i++)
{
if(a[min][y]>a[i][y])
min=i;
}
return min;
}
int max(int x)//第x+1行的最大值 所在的列
{
int j,temp,max=0;
for(j=1;j<4;j++)
{
if(a[x][max]<a[x][j])
max=j;
}
return max;
}
int main()
{
int i,j,temp,count=1;
puts("輸入二維數組:\n");
for(i=0;i<3;i++)
{
printf("輸入第%d行:\n",i+1);
scanf("%d %d %d %d",&a[i][0],&a[i][1],&a[i][2],&a[i][3]);
}//輸入數組

for(i=0;i<3;i++)
{
j=max(i);
temp=min(j);
if(temp==i)
{
printf("鞍點為%d行%d列的%d\n",i+1,j+1,a[i][j]);
count++;
}
}
if(count==0)
printf("沒有鞍點");
return 0;
}

❿ 找出二維數組中的鞍點,c語言

你好:

#include<stdio.h>

voidmain()

{

inti,j,min,m,n,p,q,max;

m=0;n=0;p=0;q=0;

inta[4][4]={{1,2,4,3},{5,2,7,4},{7,3,6,8},{2,4,5,9}};

max=a[0][0];

min=a[0][0];

for(i=0;i<4;i++)

{

m=i;

n=0;

p=0;

q=0;

max=a[i][0];

for(j=0;j<4;j++)

if(a[i][j]>max)

{

max=a[i][j];

n=j;

}

min=a[0][n];

q=n;

for(j=0;j<4;j++)

if(a[j][n]<min)

{

min=a[j][n];

p=j;

}

if((p==m))

{

printf("鞍點為:%d ",a[m][n]);

printf("此時m=%d;n=%d ",m,n);

break;

}

else

if(i>=3)

printf("noandian");

}

}

已編譯出,是正確的,如果哪裡不懂,再聯系我。

希望對你有幫助