簡體   English   中英

查找char數組中的整數平均值

[英]Finding the integer average in a char array

所以我很難創建這個函數,必須找到一個char數組的整數平均值。

這是我的數組char [] letters = {'A','B','C','D','E','F','G','H','I','J'} ;

我試圖鍵入強制轉換來找到整數平均值,如A = 32 j = 74.添加整數值並將其轉回字符但暫時卡住。

/********************************************************************************
 This function will calculate the integer average of characters in the array
********************************************************************************/
public static void average( char [] letters )
{
     int total = 0;

     char mean;


     total = total + letters[letters.length];
     mean = (char)total / letters.length;

     System.out.println("The value is " + average( letters) );
}

這是不正確的:

 total = total + letters[letters.length];

此操作將超過數組末尾的值添加到total ,從而觸發異常。

你需要一個循環:

for (int i = 0 ; i != letters.length ; i++)
    total += letters[i];

你也可以使用for - in循環,如下所示:

for (char ch : letters)
    total += ch;

你也是鑄造total而不是鑄造分裂的結果:

mean = (char)total / letters.length;

應該換成

mean = (char)(total / letters.length); // Note the added parentheses

首先 - 你的方法是遞歸的,它會破壞。 我想你想把字符轉換成十進制ascii代碼。 嘗試這個:

public static int average( char [] letters )
{
     int total = 0;

     for(int i = 0; i < letters.length; i++){
       total += (int)letters[i];
     }

     return total / letters.length; //or cast it back to char if you prefer
}

這是為了做到這一點,如何做到這一點? 如果沒有,請使用Character數組並使用.digit()。

如果是這樣,那么你是在正確的軌道,但我的第一個想法是只是循環,減去適當的值以將ascii字符更改為數字,可能將它們粘貼在一個新的數組中,然后再循環到平均值。

老實說,我不知道你是怎么用0循環嘗試這個。

暫無
暫無

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

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