簡體   English   中英

COMP SCI 101 / JAVA創建具有1000個隨機整數的陣列,然后執行頻率計數並計算平均值

[英]COMP SCI 101/JAVA Creating an Array with 1000 Random Integers, then performing a Frequency Count and calculating average

這是一個編程任務我遇到了一些麻煩。 我不能使用課堂上沒有教給我們的任何東西。 我相信我的代碼可能是多余的(我想我有一個太多的計數控制循環)。

這是一個問題:

創建一個填充數組的應用程序,其中包含1,000個隨機整數,每個整數在1到10之間。然后,您的程序應執行頻率計數 - 對於所有10個可能的值,有多少個元素等於1,有多少個等於2等等。 您的程序還應計算值的平均值。 您的應用程序應將整齊格式的摘要報告輸出到包含摘要結果的文本文件,而不是整個數組。

我相信我已經創建了一個數組,該數組在1到10之間正確填充了1000個隨機整數。 當我到達問題的頻率計數部分時,我需要它輸出等於1的整數的精確數,等於2,依此類推。 在我的輸出當前,它打印每個等於1的隨機值,而不是等於1的確切數值。

這是我的代碼:任何幫助將不勝感激。 另外我想我可能有一個太多的計數控制循環。 也許那是我的問題?

/**
 * This method fills an array with 1,000 random integers, each between 
 * 1 and 10.
 */
public static void main(String[] args) {
    int [] num = new int[1000]; //an array of 1000 integers
    int i; //used as an array index

    for( i= 0; i < 1000; i++)
        num[i] = 1+(int) (Math.random()*((10-1)+1)); 
 //math.Random generates a number between 0 and 1, this method calls for numbers
    //to be between 1 and 10. To make this possible, I need to multiply
    //the math.random by the max-min and add 1 to make sure it generates
    //1,000 random integers between 1 and 10.

    int count1;  //used to count how many integers are equal to 1
    System.out.println ("Integers equal to 1");
    //this loop prints the values in the array
    for(i=0; i<1000; i++)
        if (num[i] == 1)
        {
            i++;
            System.out.println(i + "of the random 1000 integers are equal to 1.");
        }

這是我用來創建代碼的教科書中的信息。

首先將變量countEven初始化為零,然后,當我們迭代數組時,我們將遞增每個偶數Fibonacci數的計數。 為了測試偶數,我們將使用Java的剩余操作(%),它返回整數除法運算的余數。 如果除以2時余數為零,則數字為偶數。

int[] fib = {0,1,1,2,3,5,8,13,21,34} // an array initialized with Fibonacci numbers
int i;// used as an array index
int countEven; used to count how many of the first 10 Fibonacci numbers are even
System.out.println(“Even Fibonacci numbers” );
// this loop prints the values in the array
for( i= 0; i < fib.length; i++)
if (fib[i] % 2 == 0)
{
count++;
System.out.println( fib[i] + “ is even”);
}
system.out.println ( count + “ of the first 10 Fibonacci numbers are even”);

輸出看起來像這樣:即使Fibonacci數字0甚至是2甚至是8甚至34,前10個Fibonacci數字中的4個甚至是偶數。

你有幾個問題。 在街區

if ( num[i] == 1 ) {
    i++;
    System.out.println(i + "of the random 1000 integers are equal to 1.");    
}

你正在遞增i ,而不是count1

此外, if ( num[i] == 1 )為真, if ( num[i] == 1 )每次打印結果,而不是僅在結束時打印一次。

for(i=0; i<1000; i++)
        if (num[i] == 1)
        {
            i++;
            System.out.println(i + "of the random 1000 integers are equal to 1.");
        }

將上面的代碼更改為:

for(i=0; i<1000; i++)
        if (num[i] == 1)
        {
            count1++;
        }
System.out.println(count1 + "of the random 1000 integers are equal to 1.");

看看你能不能得到你想要的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM