本文目錄一覽:
- 1、java輸出馬鞍數
- 2、設計一個Java程序,查找二維數組中的馬鞍點(本行中最小、但本列中最大的點。假設二維數組中沒有重複數據
- 3、java高手進用java找馬鞍數
- 4、關於JAVA鞍點問題的編程
- 5、java從鍵盤輸入一個數組,找出其中的鞍點
- 6、求二維數組的馬鞍點 java
java輸出馬鞍數
package com.njty.test;
/**
* 馬鞍數
* @author Administrator
*
*/
public class MAS {
/**
* @param args
*/
public static void main(String[] args) {
//定義二維數組
int arrays[][] = {
{5,6,3,8,9},
{4,5,6,7,8},
{3,4,5,2,1},
{2,3,4,9,0},
{1,2,5,4,8}
};
boolean flag = true; //用於標記是否是馬鞍數
for(int i = 0; i 5; i++){
int tempM = arrays[i][0]; //首先將第一行第一列數假設就是馬鞍數
int tempi = 0; //用於行判斷
int tempj = 0; //用於存儲每行最小數所在的列數
for(int j = 0; j 5; j++){
if(arrays[i][j] tempM){//找到行中最小的數
tempM = arrays[i][j];
tempj = j; //保存最小數的列數
}
}
while(tempi 5){
if(tempM arrays[tempi][tempj]){//判斷是否是列中最大的數
flag = false; //不符合條件則將標記置為false
}
tempi++;
}
if(flag){
System.out.println(“馬鞍數是 第”+(i+1)+”行第”+(tempj+1)+”列的數:”+tempM);
}
}
if(!flag){
System.out.println(“該組數中不存在馬鞍數!”);
}
}
}
設計一個Java程序,查找二維數組中的馬鞍點(本行中最小、但本列中最大的點。假設二維數組中沒有重複數據
#include#defineN10#defineM10voidmain(){inti,j,k,m,n,flag1,flag2,a[N][M],max,maxj;printf(“輸入行數n:”);scanf(“%d”,n);printf(“\n輸入列數m:”);scanf(“%d”,m);for(i=0;imax){max=a[i][j];maxj=j;}for(k=0,flag1=1;ka[k][maxj])flag1=0;if(flag1){printf(“\n第%d行第%d列的%d是鞍點\n”,i,maxj,max);flag2=1;}}if(!flag2)printf(“\n矩陣無鞍點!\n”);}
java高手進用java找馬鞍數
//文件保存成Test.java,數組元素我是隨機生成的,可能沒有鞍點,你可以把//那個maxtrix數組元素改成自己的數組元素,N是矩陣維數,可以調整
import java.util.Random;
public class Test {
public static void main(String[] args) {
final int N = 5;
Random rand = new Random();
int matrix[][] = new int[N][N];
int i;
int j;
int k;
int max;
int col;
boolean found = true;
for(i = 0; i N; i++) {
for(j = 0; j N; j++)
{
matrix[i][j] = 1+ rand.nextInt(25);
System.out.printf(“%3d”,matrix[i][j]);
}
System.out.println();
}
i = 0;
while(i N)
{
max = matrix[i][0];
col = 0;
found = true;
for(j = 1; j N; j++)
{
if(max matrix[i][j])
{
max = matrix[i][j];
col = j;
}
}
for(k = 0; k N; k++)
{
if(max matrix[k][col])
{
found = false;
break;
}
}
if(found)
{
System.out.printf(“鞍點是%d\n”, max);
break;
}
else
i++;
}
if(!found)
System.out.println(“沒有鞍點”);
}
}
關於JAVA鞍點問題的編程
public class Text {
public static void main(String[] args){
int aa[][] = new int[6][6];
for(int i = 0;i6;i++){
for(int j = 0;j6;j++){
aa[i][j]=new Random().nextInt(3);
System.out.print(aa[i][j]+” “);
}
System.out.println();
}
int max = 0;
int min = 100;
int flag = 0;
int flag2 = 0;
for(int i=0;i6;i++){
for(int j=0;j6;j++){
if(aa[i][j]max){
max=aa[i][j];
flag = j;
}
}
for(int k=0;k6;k++){
if(aa[k][flag]min){
min = aa[k][flag];
flag2 = k;
}
}
if(flag2 == i){
System.out.println(i +”:” + flag +”是按點”);
System.out.println(aa[i][flag]);
}
max = 0;
min = 100;
flag = 0;
flag2 = 0;
}
}
}
java從鍵盤輸入一個數組,找出其中的鞍點
/*
程序的功能:
求任意的一個m×n矩陣的鞍點——鞍點是指該位置上的元素在該行上為最大、在該列上為最小,
矩陣中可能沒有鞍點,但最多只有一個鞍點。
m、n(2=m=20、2=n=20)及矩陣元素從鍵盤輸入(只考慮int型和每行、每列中沒有並列最大/最小的情況)。
*/
public static void main(String[] args) {
int[][] arr = new int[20][20];
int m, n;
int max, min;
int maxHPos, maxLPos, minHPos, minLPos;
int flag = 0;
Scanner sc = new Scanner(System.in);
System.out.println(“請輸入m的值:”);
m = sc.nextInt();
System.out.println(“請輸入n的值:”);
n = sc.nextInt();
/* 從鍵盤輸入m×n矩陣,並存放到數組arr中 */
System.out.println(“請輸入矩陣的值:”);
for (int i = 0; i m; i++) {
for (int j = 0; j n; j++) {
arr[i][j] = sc.nextInt();
}
}
/* 在矩陣中找鞍點 */
for (int i = 0; i m; i++) {
/* 找第i行的最大值及最大值的下標(包括行標和列標),i的值從0開始 */
max = arr[i][0];
maxHPos = i;
maxLPos = 0;
for (int j = 1; j n; j++) {
if (arr[i][j] max) {
max = arr[i][j];
maxHPos = i;
maxLPos = j;
}
}
/* 在第i行的最大值所在列找該列的最小值及其下標 */
min = arr[0][maxLPos];
minHPos = 0;
minLPos = maxLPos;
for (int k = 1; k m; k++) {
if (arr[k][maxLPos] min) {
min = arr[k][maxLPos];
minHPos = k;
minLPos = maxLPos;
}
}
/* 判斷第i行的最大值是否是第i行最大值所在列的最小值,如果是,找到鞍點*/
if ((maxHPos == minHPos) (maxLPos == minLPos)) {
System.out.println(String.format(“有鞍點:arr[%d][%d]=%d”, maxHPos,
maxLPos, arr[maxHPos][maxLPos]));
flag = 1; //給變量flag賦值1,表示鞍點已找到
break; //鞍點已找到,結束查找過程
}
}
if (0 == flag) //flag的值為0,表示在矩陣中沒有找到鞍點
{
System.out.println(“沒有鞍點”);
}
}
求二維數組的馬鞍點 java
class mypoint
{
public static void main (String args[])
{
int a[][]={{1,2,3,4,5},{7,3,4,5,6},{2,1,5,4,3},{5,3,6,5,4}};
int i,j,temp;
int maxa[][]=new int [4][5];
int mina [][]=new int [4][5];
//求出行中最小值並標記
for(i=0;ia.length;i++)
{
temp=a[i][0];
for(j=1;ja[i].length;j++)
if (a[i][j]temp)
temp=a[i][j];
for (j=1;ja[i].length;j++)
if(a[i][j]==temp)
mina[i][j]=1;
}
//求出列中最大值並標記
for(j=0;ja[0].length;j++)
{
temp=a[0][j];
for(i=1;ia.length;i++)
if (a[i][j]temp)
temp=a[i][j];
for (i=1;ia.length;i++)
if(a[i][j]==temp)
maxa[i][j]=1;
}
//打印輸出矩陣
for(i=0;ia.length;i++)
{
for(j=0;ja[i].length;j++)
System.out.print(” “+a[i][j]+” “);
System.out.println();
}
//求馬鞍點並打印輸出
for(i=0;ia.length;i++)
{
for(j=0;ja[i].length;j++)
if(mina[i][j]+maxa[i][j]==2)
System.out.println(” “+i+”行”+j+” 列是一個馬鞍點值 =”+a[i][j]);
}
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/254186.html