我得到了以下的問題:搜索和計數最大價值
寫,提示用戶輸入10個正整數,然後找到其出現的最大的價值和數量的Java程序。提示:使用While循環。
Sample Run: please enter 10 numbers:
1
2
46
1
0
5
46
46
6
27
The biggest value is: 46 and It occurs 3 times.
下面是我的解決辦法:
import java.util.*;
public class numbers{
public static void main(String args[]){;
Scanner input=new Scanner (System.in);
int n=0;
int H=1;
int y=0;
System.out.println("please Enter 10 numbers:");
while (n<10){
int f=input.nextInt();
if (f>n)
y=f;
else if(y==f)
H++;}
System.out.println("the biggest value is: "+
n+" and it is occurs "+
H+" times");
}}
但問題的結果是不正確的:「(
我應該做
感謝,但它?!使無限循環!!
import java.util.*;
public class numbers{
public static void main(String args[]){;
Scanner input=new Scanner (System.in);
int n=0;
int H=0;
int y=0;
System.out.println("please Enter 10 numbers:");
while (n<10){
int f=input.nextInt();
if (f>y){
y=f;
H=1;}
else if(y==f){
H++;
n++; }
}
System.out.println("the biggest value is: "+y+" and it is occurs "+H+" times");
}}
終於讓我找到我的錯誤 「感謝您的幫助」
糾正我的代碼
import java.util.*;
public class numbers{
//main method
public static void main(String args[]){;
Scanner input=new Scanner (System.in);
int n=0;
int H=0;
int y=0;
System.out.println("please Enter 10 numbers:");
while (n<10){
int f=input.nextInt();//f the numbers
if(y==f)
H++;//to count how many repeat
if (f>y){
y=f;// if numbers greater than y put value of f in y
H=1;}
n++;//to update counter
}
System.out.println("the biggest value is: "+y+" and it is occurs "+H+" times");
}// end main
}// end class
它是不是正確?什麼不工作?那是什麼標題? –
我認爲你的標題 –
發生了什麼,你的while循環有缺陷。切換數字時不會重置「H ++」計數器,因此您只需計算所有重複數字。例如'1 2 2 4 4 9'將輸出4,因爲有4個單獨的數字有重複。 –