java中馬鞍點的問題(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-hant/n/254186.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-14 17:40
下一篇 2024-12-14 17:40

相關推薦

  • Python官網中文版:解決你的編程問題

    Python是一種高級編程語言,它可以用於Web開發、科學計算、人工智能等領域。Python官網中文版提供了全面的資源和教程,可以幫助你入門學習和進一步提高編程技能。 一、Pyth…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • 如何解決WPS保存提示會導致宏不可用的問題

    如果您使用過WPS,可能會碰到在保存的時候提示“文件中含有宏,保存將導致宏不可用”的問題。這個問題是因為WPS在默認情況下不允許保存帶有宏的文件,為了解決這個問題,本篇文章將從多個…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論