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

c語言矩陣中的馬鞍點

發布時間: 2022-03-15 00:17:03

⑴ 求教:c語言求矩陣的鞍點問題

// 下面是你的代碼 我加了個 注釋
#include <stdio.h>
void main()
{
while(1)
{
int a[4][4];
int j,i,m,t,x,y;
printf("please input sixteen numbers:\n");
for(j=1;j<=4;j++)
for(i=1;i<=4;i++)
scanf("%d",&a[j-1][i-1]);
printf("\n");
for(j=1;j<=4;j++)
{
if(a[j-1][0]>=a[j-1][1])
m=a[j-1][0];
else
m=a[j][1]; // 這里出問題了 應該是 m = a[j-1][1];
for(i=3;i<=4;i++)
if(a[j-1][i-1]>=m)
m=a[j-1][i-1];
for(x=1;x<=4;x++)
{
if(a[j-1][x-1]==m)
{
if(a[0][x-1]<=a[1][x-1])
t=a[0][x-1];
else
t=a[1][x-1];
for(y=3;y<=4;y++)
if(a[y-1][x-1]<=t)
t=a[y-1][x-1];
if(m==t)
printf("此數列的鞍點為元素a[%d][%d],對應數值大小為 %d\n",j-1,x-1,m);
}
}
}
}
}

⑵ 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;

}

(2)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語言編程 找出一個二維數組中的鞍點

你那個-8XXXXX是地址值,
#include "stdio.h"
main()
{
int x=0,y=0,t=0,index=0;
int s[3][4];
for(;x<3;x++)
{
for(y=0;y<4;y++)
{
scanf("%d",&t);
s[x][y]=t;
}
}
for(x=0;x<3;x++)
{
for(y=0;y<3;y++)
{
index=s[x][y]>s[x][y+1]?y:y+1;
}
if(s[x][index]<=s[0][index]&&s[x][index]<=s[1][index]&&s[x][index]<=s[2][index])
{
printf("%dddd\n",s[x][index]);
return;
}
}
printf("NO",s[x][index]);
}

⑷ c語言 求矩陣鞍點

啥是鞍點?

⑸ c語言中,由鍵盤輸入一個3×4(3行4列)的矩陣,輸出矩陣中的鞍點(即在矩陣中行中最大,列中最小的

int main(){

int a[3][4];

int i,j,k,n,max1,max2;

printf("input: ");

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

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

scanf("%d",&a[i][j]);

}

}


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

max1=0;

max2=0;

k=0;

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

if(a[i][j]>max1){

max1=a[i][j];

k=j;

}

}

printf("行最大值max1:%d ",max1);//1.求出行中最大值


max2=max1;

for(n=0;n<3;n++){

if(a[n][k]<max2){

max2=a[n][k];

}

}

printf("列最小值max2:%d ",max2); //2.求出行最大值的那一列的最大值


if(max1==max2){

printf("鞍:%d ",max1);

}else{

printf("NO ");

}//3.判斷是否是同一個值


}


}

⑹ C語言求二維數組的鞍點

前面xoaxa的回答挺正確的,只是在後面輸出鞍點的時候出錯了,應該把行列位置交換下,求min時的得出位置是行的位置,求max時得出的是所在列的位置。

⑺ c語言問題 找矩陣中的鞍點

#include <stdio.h>
#define N 3
#define M 4
void main()
{
int i,j,k,a[N][M];
int max,maxj,flag;
printf("Please input matrix:\n");
for(i=0;i<N;i++)
for(j=0;j<M;j++)
scanf("%d",&a[i][j]);
for(i=0;i<N;i++)
{
max=a[i][0];
maxj=0;
for(j=0;j<M;j++)
if(a[i][j]>max)
{max=a[i][j];
maxj=j;
}
flag=1;
for(k=0;k<N;k++)
if(max>a[k][maxj])
{flag=0;
continue;
}
if(flag)
{printf("a[%d][%d]=%d\n",i,maxj,max);
break;}
}
if(!flag)
printf("NO!");
}

⑻ C語言求任意數M*N矩陣的鞍點

#include <stdio.h>
main()
{
int a[100][100];
int m,n,i,j,sign;
printf("input m and n:\n");
scanf("%d%d",&m,&n);
printf("Input the array:\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(sign=0,j=1;j<n;j++)
if(a[i][sign]<a[i][j])
sign=j;
for(j=0;j<m;j++)
if(a[i][sign]>a[j][sign])
break;
if(j>=m)
printf("鞍點:%d\n",a[i][sign]);
}
}
//調試成功

⑼ C語言尋找矩陣的鞍點

1、鞍點為矩陣元素所在行的最大值,以及所在列的最小值。

⑽ 求一個5×5矩陣馬鞍點的C語言程序

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

#defineM50
#defineN50

intmain(void){
inti,j,k,T,max,jmax,flag,f;
inta[M][N],m,n;
srand((unsigned)time(NULL));
scanf("%d",&T);//測試次數
while(T--){
scanf("%d%d",&m,&n);//二維數組維度
for(i=0;i<m;++i){//產生二維數組元素
for(j=0;j<n;++j){
a[i][j]=rand()%1000;
printf("%04d",a[i][j]);
}
printf(" ");
}
f=1;
for(i=0;i<m;++i){
max=a[i][0];
jmax=0;
for(j=1;j<n;++j){//找出i行最大的
if(max<a[i][j]){
max=a[i][j];
jmax=j;//且記錄所在的列坐標
}
}
flag=1;//預置標志
for(k=0;k<m&&flag;++k){//判斷max是否為所在列最小的
if(a[k][jmax]<max)//不是
flag=0;//則清標志
}
if(flag==1){//有鞍點
printf("鞍點:a[%d][%d]=%d ",i,jmax,a[i][jmax]);
f=0;
//break;
}
}
if(f)printf("沒有鞍點。 ");//沒有鞍點
}
return0;
}