如何生成对角线数组:
第一个元素 int lengthArray = scan.nextInt();
int[][] array = new int[lengthArray][lengthArray];
array[0][0] = rnd.nextInt(7) + 4;
for (int i = 1; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
// generate number diagonal
array[i][i] = rnd.nextInt(
(((array[i - 1][i - 1] + 10) - (array[i - 1][i - 1] + 1) + 1)) + (array[i - 1][i - 1] + 1));
}
}
是随机的&lt; 4; 10&gt;,下一个对角线元素是随机的但高于前一个元素但不高于10,
示例:
8 0 0 0
0 10 0 0
0 0 13 0
0 0 0 17
CREATE PROCEDURE insertGebruiker(
@Naam VARCHAR(50),
@Achternaam VARCHAR(50),
@Leeftijd INT,
@Geslacht VARCHAR(50),
@Huidiggewicht INT,
@Streefgewicht INT,
@Gebruikersnaam VARCHAR(50),
@Email VARCHAR(50),
@Wachtwoord VARCHAR(50),
)
AS
BEGIN
INSERT INTO Gebruiker(
[Gebruiker-ID],
Naam,
Achternaam,
Leeftijd,
Geslacht,
Huidig_gewicht,
Streef_gewicht,
Gebruikersnaam,
Email,
Wachtwoord)
VALUES (
1,
@Naam,
@Achternaam,
@Leeftijd ,
@Geslacht,
@Huidiggewicht ,
@Streefgewicht ,
@Gebruikersnaam ,
@Email,
@Wachtwoord,
)
END
我不知道我做错了什么。
答案 0 :(得分:0)
您可以简单地将0到10之间的随机值(不包括)添加到前一个值中。这将给出一系列previous -> previous + 9
array[i][i] = rnd.nextInt(10) + (array[i - 1][i - 1]);
以下是要测试的完整代码:
int lengthArray = 5;
int[][] array = new int[lengthArray][lengthArray];
Random rnd = new Random();
array[0][0] = rnd.nextInt(7) + 4;
for (int i = 1; i < array.length; i++) {
array[i][i] = rnd.nextInt(10) + (array[i - 1][i - 1]);
}
for (int i = 0; i < array.length; i++) {
System.out.println(Arrays.toString(array[i]));
}
一个输出:
[4, 0, 0, 0, 0]
[0, 6, 0, 0, 0]
[0, 0, 8, 0, 0]
[0, 0, 0, 15, 0]
[0, 0, 0, 0, 19]