Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查找列中所有值的总和[RNG]_Java_Random_Addition - Fatal编程技术网

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