如何在第一行创建具有不同起始值的二维数组? [关闭]
Posted
技术标签:
【中文标题】如何在第一行创建具有不同起始值的二维数组? [关闭]【英文标题】:How do I create a 2d array with different starting values in the first row? [closed] 【发布时间】:2019-08-08 10:35:20 【问题描述】:我需要帮助学习如何在第一行创建一个具有不同起始值的二维数组,基于它上面的行,然后我需要它加倍。 像这样:
一周流行 1 流行 2 流行 3 流行 4 流行 5
0 10 100 500 1000 5000
1 20 200 1000 2000 10000
还有 9 周
【问题讨论】:
到目前为止你有什么尝试? 【参考方案1】:两个 For 循环将完成这项工作。 https://www.programiz.com/java-programming/multidimensional-array 和 https://www.w3schools.com/java/java_for_loop.asp。
public class HelloWorld
public static void main(String []args)
int row = 9; // row
int col = 5; // col
int[][] results = new int[row][col]; // final results
int[] firstvalues = new int[] 10,100,500,1000,5000;
for(int a = 0 ; a < firstvalues.length; a++ )
System.out.println(firstvalues[a]);
//first row to last row
for(int i = 0;i < row; i++ )
//first column to last column
for(int j = 0; j < col; j++)
if(i==0)
results[i][j] = (firstvalues[j]);
results[i][j] = (i + 1) * firstvalues[j];
for(int i = 0; i < row; i++ )
for(int j = 0; j < col; j++)
System.out.println("Element at row:" + i + " " + j + " " + results[i][j]);
【讨论】:
【参考方案2】:由于答案基本上是由@phyonemyatt 提供的,因此以下解决了计算问题并提供了格式化的输出。尽管如此,基本方法与@phonemyatt 完全相同。
public static void main(String []args)
int row = 10; // row
int col = 5; // col
int[][] results = new int[row][col]; // final results
// set the first row's starting values
int[] firstvalues = new int[] 10,100,500,1000,5000;
//first row to last row
for(int i = 0;i < row; i++ )
//first column to last column
for(int j = 0; j < col; j++)
// if we are the first row, use the defined starting values
if(i==0)
results[i][j] = (firstvalues[j]);
else
// double from the row before
results[i][j] = results[i-1][j] * 2;
// create the output, we use printf for formatting
System.out.printf("%5s", "week ");
for (int i = 0; i < col; ++i)
System.out.printf("%10s", "Pop " + (i + 1));
System.out.println();
for(int i = 0; i < row; i++ )
System.out.printf("%4d ", i);
for(int j = 0; j < col; j++)
System.out.printf("%10d", results[i][j]);
System.out.println();
输出
week Pop 1 Pop 2 Pop 3 Pop 4 Pop 5
0 10 100 500 1000 5000
1 20 200 1000 2000 10000
2 40 400 2000 4000 20000
3 80 800 4000 8000 40000
4 160 1600 8000 16000 80000
5 320 3200 16000 32000 160000
6 640 6400 32000 64000 320000
7 1280 12800 64000 128000 640000
8 2560 25600 128000 256000 1280000
9 5120 51200 256000 512000 2560000
【讨论】:
以上是关于如何在第一行创建具有不同起始值的二维数组? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章