import java.util.Scanner;
public class lab2_2 {
public static void main(String args[]) {
System.out.println("Sum = "+sumArray());
System.out.println("Average = "+aveArray());
}
public static int[] fillArray() {
Scanner sc = new Scanner(System.in);
String str = sc.next();
int length = Integer.parseInt(str);
int array[] =new int [length];
for(int i=0;i<length;i++)
{
String str2 = sc.next();
int num = Integer.parseInt(str2);
array[i] = num;
}
return array;
}
public static int sumArray() {
int array1[] = fillArray();
int sum = 0;
for(int i=0;i<array1.length;i++)
{
sum = sum + array1[i];
}
return sum;
}
public static int aveArray() {
int array1[] = fillArray();
int sum = sumArray();
int length = array1.length;
int ave = sum/length;
return ave;
}
}
為什么程式執行的時候主方法第二個輸出不會顯示呢
uj5u.com熱心網友回復:
sc.next讀入內容后把換行符遺留在輸入快取中,所以如果不清空輸入快取,下次就會讀入空字串改成sc.nextLine
uj5u.com熱心網友回復:
但是用nextLine不會把整個行讀取了嗎 我想一個一個數字讀取
uj5u.com熱心網友回復:
那你就在一行用空格把所有的資料輸入,比如輸入 abc空格def空格ghi 。。。回車
如果是一個一個輸入,用nextLine沒問題
即
輸入 abc回車
輸入 def回車
。。。
uj5u.com熱心網友回復:
好像不是這個問題 我感覺是最后一個方法里呼叫上一個方法時有問題
uj5u.com熱心網友回復:
你就說你是一個一個輸入還是一行輸入好了一個一個輸入的話,就是換行符的問題
你可以用一下代碼做個測驗
String str = sc.next();
String str2 = sc.nect(); //一個一個輸入時,看看這里需不需要你輸入?它的值是什么?
System.out.printf("str=%s, str2=%s\n", str, str2); //一個一個輸入的時,str2會被跳過,且是空字串
uj5u.com熱心網友回復:
謝謝老師指點 我懂你的意思了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/114703.html
標籤:Eclipse
上一篇:求教用JAVA決議高德地圖逆地址解碼JSON方法,我寫的函式有問題。
下一篇:請問這道題用java你會怎么做
