Java二维数组总和比较与位数统计功能实现求助
问题与代码求助
已完成两个10×10随机数组的生成与展示,需要实现以下功能:
- 比较两个数组的元素总和,找出总和更高的数组
- 统计每个数组中一位数、两位数、三位数的数量
现有代码如下:
import java.util.Random; public class Main { static int[][] tab_1 = new int[10][10]; static int[][] tab_2 = new int[10][10]; static int[][] tab_wyniki = new int[10][10]; static int[][] tab_1_sum = new int[10][10]; public static void main(String[] args) { wypelnij_tablice(1000); wyswietl_tablice_1(); wyswietl_tablice_2(); sumuj_tablice(); wyswietl_sume_tabli(); suma_tabeli_1(); wys_sum_tab_1(); // 调用新增功能 porownajSumeTablic(); statystykaCyfr(tab_1, "第一个数组"); statystykaCyfr(tab_2, "第二个数组"); } static void wypelnij_tablice(int zakres) { Random r = new Random(); for (int wiersz = 0; wiersz < 10; wiersz++) { for (int kolumna = 0; kolumna < 10; kolumna++) { tab_1[wiersz][kolumna] = r.nextInt(zakres); tab_2[wiersz][kolumna] = r.nextInt(zakres); } } } static void wyswietl_tablice_1() { System.out.println("tablica pierwsza"); for (int wiersz = 0; wiersz < 10; wiersz++) { for (int kolumna = 0; kolumna < 10; kolumna++) { System.out.print(tab_1[wiersz][kolumna] + " , "); } System.out.println(); } } static void wyswietl_tablice_2() { System.out.println("tablica druga"); for (int wiersz = 0; wiersz < 10; wiersz++) { for (int kolumna = 0; kolumna < 10; kolumna++) { System.out.print(tab_2[wiersz][kolumna] + " , "); } System.out.println(); } } static void sumuj_tablice() { for (int wiersz = 0; wiersz < 10; wiersz++) { for (int kolumna = 0; kolumna < 10; kolumna++) { tab_wyniki[wiersz][kolumna] = tab_1[wiersz][kolumna] + tab_2[wiersz][kolumna]; } } } static void wyswietl_sume_tabli() { System.out.println("suma tablic"); for (int wiersz = 0; wiersz < 10; wiersz++) { for (int kolumna = 0; kolumna < 10; kolumna++) { System.out.print(tab_wyniki[wiersz][kolumna] + " , "); } System.out.println(); } } static void suma_tabeli_1() { for (int wiersz = 0; wiersz < 10; wiersz++) { for (int kolumna = 0; kolumna < 10; kolumna++) { tab_1_sum[wiersz][kolumna] = tab_1[wiersz][kolumna]; } } } static void wys_sum_tab_1() { System.out.println("suma tabeli 1"); for (int wiersz = 0; wiersz < 10; wiersz++) { for (int kolumna = 0; kolumna < 10; kolumna++) { System.out.print(tab_1_sum[wiersz][kolumna] + " , "); } System.out.println(); } } // 计算数组总和并比较 static void porownajSumeTablic() { int suma1 = obliczSumeTablicy(tab_1); int suma2 = obliczSumeTablicy(tab_2); System.out.println("\n数组总和比较:"); System.out.println("第一个数组总和:" + suma1); System.out.println("第二个数组总和:" + suma2); if (suma1 > suma2) { System.out.println("第一个数组总和更高"); } else if (suma2 > suma1) { System.out.println("第二个数组总和更高"); } else { System.out.println("两个数组总和相等"); } } // 辅助方法:计算单个二维数组的总和 static int obliczSumeTablicy(int[][] tablica) { int suma = 0; for (int[] wiersz : tablica) { for (int liczba : wiersz) { suma += liczba; } } return suma; } // 统计数组中一位数、两位数、三位数的数量 static void statystykaCyfr(int[][] tablica, String nazwaTablicy) { int jednocyfrowe = 0; int dwucyfrowe = 0; int tricyfrowe = 0; for (int[] wiersz : tablica) { for (int liczba : wiersz) { if (liczba >= 0 && liczba < 10) { jednocyfrowe++; } else if (liczba >= 10 && liczba < 100) { dwucyfrowe++; } else if (liczba >= 100 && liczba < 1000) { tricyfrowe++; } } } System.out.println("\n" + nazwaTablicy + "位数统计:"); System.out.println("一位数数量:" + jednocyfrowe); System.out.println("两位数数量:" + dwucyfrowe); System.out.println("三位数数量:" + tricyfrowe); } }
新增功能说明
- 数组总和比较:通过
obliczSumeTablicy方法遍历数组计算总和,再在porownajSumeTablic中对比两个数组的总和并输出结果 - 位数统计:
statystykaCyfr方法遍历数组元素,根据数值范围判断位数并分别计数,最终输出统计结果
内容的提问来源于stack exchange,提问作者Fatal1ty
相关产品推荐
相关产品推荐

