例如,我得到了二维表 3x2,其中所有元素都有 4x 减:“----”。如果我在程序中编写例如 32。第一个数字告诉我们它是什么数字,第二个数字告诉我们一行中有多少个数字。
它会让我的桌子像这样(32):
---- ---- 33-- ----
---- ---- -> ---- ----
---- ---- ---- ----
然后当我们写另一个(53)时:它将检查表 [0][0] 是否为空,如果不是,则检查表 [1][0] 和表 [0][1] 如果两者都有是空的,在这种情况下,它将选择编号较小的表 [0][1]。
33-- ---- 33-- 555-
---- ---- -> ---- ----
---- ---- ---- ----
在那里我们可以输入其他数字:
33-- 555- 33-- 555-
---- ---- -> 444- 22--
---- ---- 333- 222-
我们在空白处插入数字——当所有地方都不为空时,我们在有更多“-”符号的地方插入数字——我们取数字 42 和 33——在 3344 上更改它
33-- 555- 3344 555-
444- 22-- -> 444- 22--
333- 222- 333- 222-
如果我们想在不够的地方插入更多数字“-”-程序结束
我是这样开始的:
import java.util.Scanner;
import java.lang.Math.*;
public class Skladisce2
{
public static int dolzina;
public static int sirina;
public static int enote;
public static int tabela[][][];
////////////////////////////////////
//// PREGLED VRSTIC
////////////////////////////////////
public static boolean Vstavi(int barva, int visina) {
int pozdolzina = 0;
int pozsirina = 0;
int najbolProsto = 0;
for(int j=0; j<dolzina; j++) {
for(int i=0; i<sirina; i++) {
int prosto=0;
for(int k=0;k<enote;k++) {
if( tabela[j][i][k]==0){
prosto++;
}
if( prosto>najbolProsto ) {
pozdolzina = i;
pozsirina = j;
najbolProsto = prosto;
for (int l=enote-najbolProsto; ((l<enote) &&(visina>0)); l++) {
tabela[pozdolzina][pozsirina][l] = barva;
visina--;}
continue;
}k++;
}
}
}
return true;
}
/////////////////////////////////////
//// IZPIS TABELE
//////////////////////////////////////
public static void Izpis() {
for (int i=0; i<dolzina; i++){
for (int j=0; j<sirina; j++){
for (int k=0; k<enote; k++) {
if(tabela[i][j][k] == 0) {
System.out.print("-");
}
else{
System.out.print(tabela[i][j][k]);
}
}
System.out.print(" ");
}
System.out.println();
}
}
public static void main (String[] args) {
Scanner vnos_stevila = new Scanner(System.in);
System.out.print("Insert dimension: ");
int vnos = vnos_stevila.nextInt();
// int vnos razdeli na podenote - prva številka je dolžina, druga širina in tretja enota
dolzina = Integer.parseInt(Integer.toString(vnos).substring(0,1));
sirina = Integer.parseInt(Integer.toString(vnos).substring(1,2));
enote = Integer.parseInt(Integer.toString(vnos).substring(2,3));
// izpis tabele s črtami
tabela= new int[dolzina][sirina][enote];
// izriše črtice
Izpis();
// VPIS SODOV
while (true){
System.out.print("Insert color and number");
int sod = vnos_stevila.nextInt();
int dolzinaIzpisa = (int)(Math.log10(sod)+1);
int barva = Integer.parseInt(Integer.toString(sod).substring(0,1));
int visina = Integer.parseInt(Integer.toString(sod).substring(1,2));
Vstavi(barva,visina);
Izpis();
}}
}
但是当我插入数字 32 时,它写道:
33-- 33--
33-- 33--
33-- 33--
我怎样才能让程序在哪里检查最低表和插入编号?