整数数组交替元素的总和
Sum of alternate elements of integer array
是的,这个问题看起来很简单。我被要求编写一小段代码 (Java) 来找出整数数组的交替元素的总和和平均值。起始位置将由用户给出。例如,如果用户输入 3 作为起始位置,则求和模块将从索引 (3-1= 2) 开始。我的 objective 不是为了完成我的家庭作业或其他东西,而是为了了解我的代码为什么不起作用。因此,如果有人可以指出并提出修复建议?这是代码:
import java.util.Scanner;
public class Program {
static int ar[]; static int sum = 0; static double avg = 0.0;
static Scanner sc = new Scanner(System.in);
public Program(int s){
ar = new int[s];
}
void accept(){
for (int i = 0; i<ar.length; i++){
System.out.println("Enter value of ar["+i+"] : ");
ar[i] = sc.nextInt();
}
}
void calc(int pos){
for (int i = (pos-1); i<ar.length; i+=2){
sum = ar[i] + ar[i+1];
}
}
public static void main(String[] args){
boolean run = true;
while (run){
System.out.println("Enter the size of the array: ");
int size = sc.nextInt();
Program a = new Program(size);
a.accept();
System.out.println("Enter starting position: "); int pos = sc.nextInt(); //Accept position
if (pos<0 || pos>ar.length){
System.out.println("ERROR: Restart operations");
run = true;
}
a.calc(pos); //Index = pos - 1;
run = false; avg = sum/ar.length;
System.out.println("The sum of alternate elements is: " + sum + "\n and their average is: " + avg);
}
}
}
在你的 calc
方法中,你的 for 循环定义是正确的(即初始值、条件和增量都是正确的),但在循环内部, sum
计算是错误的。在每次迭代中,您应该将当前元素 - ar[i]
- 添加到总数 sum
:
for (int i = (pos-1); i<ar.length; i+=2){
sum = sum + ar[i]; // or sum += ar[i];
}
你的平均值计算也有错误:
avg = sum/ar.length;
只有对所有元素取平均值时,这才是正确的。由于平均值占元素的一半,因此不应除以 ar.length
.
是的,这个问题看起来很简单。我被要求编写一小段代码 (Java) 来找出整数数组的交替元素的总和和平均值。起始位置将由用户给出。例如,如果用户输入 3 作为起始位置,则求和模块将从索引 (3-1= 2) 开始。我的 objective 不是为了完成我的家庭作业或其他东西,而是为了了解我的代码为什么不起作用。因此,如果有人可以指出并提出修复建议?这是代码:
import java.util.Scanner;
public class Program {
static int ar[]; static int sum = 0; static double avg = 0.0;
static Scanner sc = new Scanner(System.in);
public Program(int s){
ar = new int[s];
}
void accept(){
for (int i = 0; i<ar.length; i++){
System.out.println("Enter value of ar["+i+"] : ");
ar[i] = sc.nextInt();
}
}
void calc(int pos){
for (int i = (pos-1); i<ar.length; i+=2){
sum = ar[i] + ar[i+1];
}
}
public static void main(String[] args){
boolean run = true;
while (run){
System.out.println("Enter the size of the array: ");
int size = sc.nextInt();
Program a = new Program(size);
a.accept();
System.out.println("Enter starting position: "); int pos = sc.nextInt(); //Accept position
if (pos<0 || pos>ar.length){
System.out.println("ERROR: Restart operations");
run = true;
}
a.calc(pos); //Index = pos - 1;
run = false; avg = sum/ar.length;
System.out.println("The sum of alternate elements is: " + sum + "\n and their average is: " + avg);
}
}
}
在你的 calc
方法中,你的 for 循环定义是正确的(即初始值、条件和增量都是正确的),但在循环内部, sum
计算是错误的。在每次迭代中,您应该将当前元素 - ar[i]
- 添加到总数 sum
:
for (int i = (pos-1); i<ar.length; i+=2){
sum = sum + ar[i]; // or sum += ar[i];
}
你的平均值计算也有错误:
avg = sum/ar.length;
只有对所有元素取平均值时,这才是正确的。由于平均值占元素的一半,因此不应除以 ar.length
.