Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 在数组中生成随机数,将它们相加,并将答案存储在数组中_Java_Arrays_Random - Fatal编程技术网

Java 在数组中生成随机数,将它们相加,并将答案存储在数组中

Java 在数组中生成随机数,将它们相加,并将答案存储在数组中,java,arrays,random,Java,Arrays,Random,我是Java新手,正在尝试解决下面的问题 这就是我的故事: 程序生成20个数字,最多100个,并将每个数字存储在数组中。生成后,程序必须添加两个数字并将答案存储在数组中。。范例 randomNumber[0]+randomNumber[1]=answer[0] randomNumber[2]+randomNumber[3]=answer[1] randomNumber[4]+randomNumber[5]=answer[2] 等等 完成后,我用答案检查用户输入并计算正确答案 问题是:我不知道如

我是Java新手,正在尝试解决下面的问题

这就是我的故事: 程序生成20个数字,最多100个,并将每个数字存储在数组中。生成后,程序必须添加两个数字并将答案存储在数组中。。范例

randomNumber[0]+randomNumber[1]=answer[0]
randomNumber[2]+randomNumber[3]=answer[1]
randomNumber[4]+randomNumber[5]=answer[2]
等等

完成后,我用答案检查用户输入并计算正确答案

问题是:我不知道如何将两个数字相加并存储在数组中。这似乎很容易,但我没有足够的经验:)

目前我被困在这里,如果有人能解释或帮助我解决这个问题,我将不胜感激

public class gNumber {
    private final int[] num = new int[20]; // array of randomly generated numbers
    private int[] answers; // array of correct answers and UserAnswers
    private final int[] userAnswers = new int[10];
    private int numOfCorrect = 0;

    // Accessor to get the randomly generated number
    int getNumbers(final int n) {
        return num[n];
    }

    int numOfCorrectAnswers() {
        return numOfCorrect;
    }

    // Mutator to store store user input
    void setUsrAnswers(final int _index, final int answer) {
        userAnswers[_index] = answer;
    }

    // Method to generate random 20 numbers
    public void RandomN() {

        for (int i = 0; i < num.length; i++) {
            final int randomNum = (int) (Math.random() * 100);
            num[i] = randomNum;
            final int a = num[i];
            // int b =num[i];
            answers[i] = a + a;
            System.out.println(i + ")" + num[i] + answers[i]);
        }

    }

    // method to add two numbers and store in in answers array
    public void add(int arg1, int arg2) {
        int b = 0;
        while (b < 10) {
            arg1 = num[b];
            arg2 = num[b + 1];
            answers[b] = arg1 + arg2;

            System.out.println(answers[b]);
            b = b + 1;
        }
    }

    // method to check user answers
    public void usrInput(final int usrAnwer) {
        for (final int num : answers) {
            if (num == usrAnwer) {
                numOfCorrect++;
            }
        }

    }
}
公共类gNumber{
private final int[]num=new int[20];//随机生成的数字数组
private int[]answers;//正确答案和用户答案的数组
私有最终整数[]userAnswers=新整数[10];
private int numOfCorrect=0;
//访问器以获取随机生成的数字
int getNumbers(最终int n){
返回数[n];
}
int numOfCorrectAnswers(){
返回正确的数值;
}
//用于存储用户输入的Mutator
void setUsrAnswers(最终整数索引,最终整数答案){
用户答案[_索引]=答案;
}
//生成20个随机数的方法
公共图书馆{
for(int i=0;i
听起来很简单

int b = 0;
while ( b < 20 ) {
    answers[b/2] = num[b] + num[b+1];
    b = b + 2;
}
intb=0;
而(b<20){
答案[b/2]=num[b]+num[b+1];
b=b+2;
}

在添加答案时,您需要按2步通过
num
数组:

public void add(int arg1, int arg2) {
    int b = 0;
    while (b < 10) {
        arg1 = num[2*b];
        arg2 = num[2*b + 1];
        answers[b] = arg1 + arg2;

        System.out.println(answers[b]);
        b = b + 1;
    }
}
public void add(int arg1,int arg2){
int b=0;
而(b<10){
arg1=num[2*b];
arg2=num[2*b+1];
答案[b]=arg1+arg2;
System.out.println(答案[b]);
b=b+1;
}
}

因此,
答案将有10项,就像
用户答案一样

因此,您可以首先:

answers = new int[10]
然后您需要
答案[0]=num[0]+num[1]
。最简单的方法是一次检查两个
num
,然后将值添加到
答案中。因此:

int ai = 0
for(int i=0; i<20; i+=2)
    answers[ai++] = num[i] + num[i+1]

解决方案非常简单:

int N = 20; //20 Random numbers
int[] randomNumber = new int[N];
int[] answer = new int[N/2];

//Generate random numbers of size N
for (int i = 0; i < N; i++) {
    randomNumber = generateRandom(0, 100);
}

//populate answers
for (int i = 0; i < answer.length; i++) {
    answer[i] = randomNumber[i*2] + randomNumber[i*2 + 1];
}

//Generate a random number from [min, max]
private int generateRandom(int min, int max) {
    return min + (int)(Math.random() * ((max - min) + 1));
}
int N=20//20个随机数
int[]随机数=新的int[N];
int[]答案=新int[N/2];
//生成大小为N的随机数
对于(int i=0;i

解释见注释。:-)

谢谢你,卡尔,你让它看起来太简单了:)谢谢你的详细解释,我现在明白了:)太谢谢你了,泰德,我想跳两步。。。但我没有经验,不知道从哪里开始或结束。嗯,我喜欢这个解决方案。。。下面的答案也很好,但是这一个对于像我这样的初学者来说是有意义的!谢谢精英先生!这是家庭作业吗?如果是,请贴上标签。
int N = 20; //20 Random numbers
int[] randomNumber = new int[N];
int[] answer = new int[N/2];

//Generate random numbers of size N
for (int i = 0; i < N; i++) {
    randomNumber = generateRandom(0, 100);
}

//populate answers
for (int i = 0; i < answer.length; i++) {
    answer[i] = randomNumber[i*2] + randomNumber[i*2 + 1];
}

//Generate a random number from [min, max]
private int generateRandom(int min, int max) {
    return min + (int)(Math.random() * ((max - min) + 1));
}