C语言 找鞍点
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 找鞍点相关的知识,希望对你有一定的参考价值。
各位大侠,看看下面这个程序到底哪出问题了,告诉一下,我感激不尽!!
#include<stdio.h>
void main()
int i,j,m,n,p,number=0;
int a[4][4];
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(i=0;i<4;i++)
for(j=0;j<4;j++)
printf("%-4d",a[i][j]);
printf("\n);
for(i=0;i<4;i++)
m=0;
for(j=0;j<4;j++)
if(a[i][m]<=a[i][j]) m=j,p=i;
n=0;
for(i=0;i<4;i++)
if(a[n][m]>=a[i][m]) n=i;
if(p==n)
printf("第%d行鞍点是a[%d][%d]=%d",p,p,m,a[p][m]);
number++;
if(number==0)
printf("没有鞍点\n");
#include<stdio.h>
void main()
int i,j,m,n,p,number=0;
int a[4][4];
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(i=0;i<4;i++)
for(j=0;j<4;j++)
printf("%-4d",a[i][j]);
printf("\n); /*少个 "("\n") */
for(i=0;i<4;i++)
m=0;
for(j=0;j<4;j++)
if(a[i][m]<=a[i][j]) m=j,p=i;
n=0;
for(i=0;i<4;i++)
if(a[n][m]>=a[i][m]) n=i;
if(p==n)
printf("第%d行鞍点是a[%d][%d]=%d",p,p,m,a[p][m]);
number++;
if(number==0)
printf("没有鞍点\n");
参考技术A #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();
参考技术B printf("\n);少打一个引号
python练习题4.22找鞍点
一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。
本题要求编写程序,求一个给定的n阶方阵的鞍点。
输入格式:
输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。
输出格式:
输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。
#!/usr/bin/python # -*- coding: utf-8 -*- n = int(input()) l = list() for i in range(0,n): s = list(map(int,input().split(" "))) l.append(s) key = False maxl = list() for i in range(0,n): maxl = list() for k in range(0,n): maxl.append(int(l[i][k])) #求行最大值 max2 = max(maxl) for j in range(0,n): minl = list() for k in range(0,n): minl.append(int(l[k][j])) #求列最小值 min2 = min(minl) if max2 == min2: print(i,j) key = True if not key: print("NONE")
这个程序怎么说呢,不难,重在细节。
1、遍历第一行的数据,求最大值。
2、遍历第一列最小值,然后比较,不满足,则遍历第二列。
3、列遍历完了,然后遍历第二行的最大值,再去遍历列。
读书和健身总有一个在路上
以上是关于C语言 找鞍点的主要内容,如果未能解决你的问题,请参考以下文章