/ * IMO我已经完成了大部分项目,但是我不能把我的思想包围在数组中。我应该为它分配值然后让它显示在屏幕上,因为它在程序运行时正在执行,但它不会通过数组。请帮助它让我疯狂。
分配:
对于此项目,您将创建一个程序,要求用户输入小于20的正整数值。请注意,程序只会从用户收集一个数字。所有其他号码将由该程序生成。
如果用户输入的数字大于20,则用户应该收到错误。
如果用户输入的数字等于或小于20,则显示每个值的两倍,从1开始直到所选数字(将每个数字乘以2),然后提供所有双打的总和。
例如,如果用户输入数字5,则应显示以下内容:
Double up 1 = 2
Double up 2 = 4
Double up 3 = 6
Double up 4 = 8
Double up 5 = 10
Total = 30
最低要求: •创建一个包含以下方法的单独类。注意:此类应该与包含main方法的公共类分开。 1.一种接受两个参数的方法:整数数组和整数变量。 1.整数变量应该保存用户提供的值。该数组将用于保存双倍结果。 2.此方法应执行计算,并将双倍结果存储在数组中。此外,所有double up值的总和应使用accumulator变量计算,该变量也是私有实例变量。 3.您必须确保调用方法获取对数组的更改。请记住,默认情况下,数组通过引用传递。此方法必须使用循环。
•创建一个main方法,用于创建数组和整数变量,以及类的实例。然后,main方法应该使用实例来调用类的每个方法,传递所需的数据并处理任何返回数据。显示数组和总变量的全部内容。 * /
import java.util.Scanner;
public class project2 {
public static void main(String args[]){
scores output = new scores();
output.enterNum();
output.displayScores();
}
}
class scores
{
int total;
int stats[] = new int[20];
int num1;
void enterNum()
{
Scanner input = new Scanner(System.in);
System.out.println("Enter a number between 1 and 20: ");
num1 = input.nextInt();
if(num1<=0 || num1>20)
{
System.out.println("You entered a wrong number. Try again.");
System.out.println("");
enterNum();
}
}
void displayScores()
{
int b=0;
int val2=0;
int total = 0;
val2=num1*2;
for(int i=1;b<val2;i++)
{
System.out.println(b=i*2);
total = total + b;
// this part.
// stats[i] = b;
// System.out.println(stats);
}
System.out.println(total);
}
}
答案 0 :(得分:0)
Maljam是对的,你的for循环是这里的问题。
你的for循环正在弄乱一些不需要在那里的int b
。你想要的是在循环的每次迭代中将i*2
添加到total。此外,您需要修改for-loop标头,以检查i
而不是b
。我不确定你要对阵列做什么。在这个项目中根本不需要它。
尝试将其更改为以下内容:
for (int i=1; i<=val1; i++){
//stats[i] = i;
System.out.println("Double up " + i + " = " + 2*i);
total = total + 2*i; //or total += 2*i;
}
System.out.println("Total: " + total);
答案 1 :(得分:0)
public class scores {
int total;
int stats[];
int num1;
void enterNum() {
Scanner input = new Scanner(System.in);
System.out.println("Enter a number between 1 and 20: ");
num1 = input.nextInt();
if (num1 <= 0 || num1 > 20) {
System.out.println("You entered a wrong number. Try again.");
System.out.println("");
enterNum();
}
}
void displayScores() {
stats = new int[num1];
int total = 0;
for (int i = 0; i < num1; i++) {
stats[i] = (i+1) * 2;
total += stats[i];
}
for (int i = 0; i < num1; i++) {
System.out.println((i+1) + " * 2 = " + stats[i]);
}
System.out.println("Total: " + total);
}
}