Java 查找列中所有值的总和[RNG]
我正在开发一个程序,它可以打印出一个表格,表格中填充了随机生成的整数。大多数逻辑都相对简单,并且工作得很好。我想做的一件事是将每列的总值相加并打印出来,以及表中所有值的最终总和。我四处寻找,试图找到答案,但没能找到答案Java 查找列中所有值的总和[RNG],java,random,addition,Java,Random,Addition,我正在开发一个程序,它可以打印出一个表格,表格中填充了随机生成的整数。大多数逻辑都相对简单,并且工作得很好。我想做的一件事是将每列的总值相加并打印出来,以及表中所有值的最终总和。我四处寻找,试图找到答案,但没能找到答案 rowNbr = 7; // ROW CONTROLS colNbr = 5; //COLUMN CONTROLS rpt01 = String.format("%0" + (colNbr-1) + "d", 0).replace("0",dash); //Redefine r
rowNbr = 7; // ROW CONTROLS
colNbr = 5; //COLUMN CONTROLS
rpt01 = String.format("%0" + (colNbr-1) + "d", 0).replace("0",dash); //Redefine rpt01
colBld = String.format("|---------------|%s\n",rpt01); //Redefine colBld
String cnrTxt = "First Quarter";
System.out.printf(colBld);
System.out.printf("|%-15s",cnrTxt);
for(int i = 1; i < colNbr; i = i++){ //Open for loop (columns)
String regTxt = "Region " + i++;
System.out.printf("|%-10s",regTxt);
} //End for
System.out.printf("|\n");
//Initialize array
int sales[] = new int[100];
int idx = 0;
for(int i = 1; i <= rowNbr-3; i++){
String prodTxt = "Product " + i;
System.out.printf(colBld);
System.out.printf("|%-15s|",prodTxt);
for(int j = 0; j < colNbr-1; j++){ //Open for loop (columns 2)
sales[idx] = (int)(Math.random() * 16 + 1);
System.out.printf("%-10d|",sales[idx]);
idx++;
} //End for
System.out.printf("\n");
} //End for
int totalNbr = 0; //Placeholder zero
int regNbr = 0; //Placeholder zero
String totalTxt = "Final Total: ";
String regTxt = "Region Totals";
System.out.printf(colBld);
System.out.printf("|%-15s|%-10s|\n",regTxt,regNbr);
System.out.printf(colBld);
System.out.printf("|%s%s\n",totalTxt,totalNbr);
System.out.printf(colBld);
老实说,我甚至不知道从哪里开始。感谢您的帮助 由于您已经用随机整数值顺序填充了sales数组,以表示顺序显示的区域,因此只需以区域数的增量逐步遍历数组元素,并对每个步骤中检测到的元素求和即可 要确定将要显示的区域的实际数量以及要跟踪的区域总数,我们可以根据colNbr变量中包含的值减去1(将显示5-1=4个区域)来确定 知道了这一点,我们声明了另一个名为regionTotals的整数数组,并将其长度设为4:
int[]regionTotals=newint[colNbr-1]代码>
现在,我们需要逐步遍历sales数组元素,并将适当的sales数组元素和适当的regionTotal元素相加,如下所示:
int regionCols = colNbr-1;
int[] regionTotals = new int[regionCols];
int stepCounter = 0;
for (int i = 0; i < sales.length; i++) {
stepCounter++;
if (stepCounter > regionCols) { stepCounter = 1; }
int regionIndex = (stepCounter - 1);
regionTotals[regionIndex]+= sales[i];
}
System.out.println("\nRegion Totals: " + Arrays.toString(regionTotals) + "\n");
如何将regionTotals数组元素格式化到表中取决于您,但请记住,数组是基于零的,因此数组索引0处的元素包含区域1的总和
int regionCols = colNbr-1;
int[] regionTotals = new int[regionCols];
int stepCounter = 0;
for (int i = 0; i < sales.length; i++) {
stepCounter++;
if (stepCounter > regionCols) { stepCounter = 1; }
int regionIndex = (stepCounter - 1);
regionTotals[regionIndex]+= sales[i];
}
System.out.println("\nRegion Totals: " + Arrays.toString(regionTotals) + "\n");
int totalNbr = 0; //Placeholder zero