亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

大家進來幫我看看哪里出現了錯誤了,我輸出的結果是全部輸出了,不管怎么判斷都是這樣的,哪里的邏輯出現了錯誤了

/*
?要求:
1、?考試成績已保存在數組?scores?中,數組元素依次為?89?,?-23?,?64?,?91?,?119?,?52?,?73
2、?要求通過自定義方法來實現成績排名并輸出操作,將成績數組作為參數傳入
3、?要求判斷成績的有效性(?0—100?),如果成績無效,則忽略此成績
*/
class?Demo4?{
	public?static?void?main(String[]?args)?{
		int[]?scores?=?{?89,?-23,?64,?91,?119,?52,?73?};
		print(scores);
	}

	public?static?void?print(int[]?arr)?{
		for?(int?i?=?0;?i?<?arr.length;?i++)?{		//將數組的元素你從大到小排序
			for?(int?j?=?i?+?1;?j?<?arr.length;?j++)?{
				if?(arr[i]?<?arr[j])?{
					int?temp?=?arr[i];
					arr[i]?=?arr[j];
					arr[j]?=?temp;
				}
			}
		}
		
		for?(int?i?=?0;?i?<?arr.length;?i++)?{
			int?count=1;
			if(?arr[i]<0?||?arr[i]?>?100?){
				continue;
			}
			count++;
			if?(count>3)?{
				break;
			}
			
			System.out.println(arr[i]);	
			/*if?(0?<?arr[i]?&&?arr[i]?<=?100?)?{								
				System.out.println(arr[i]);				
				
				if?(count>3)?{
					break;
				}
				count++;
			}*/
		}
	}

}

我找到錯誤了,是我的計數器定義的位置錯了,應該定義在for循環外邊,我定義在for里邊相當于我的計數器在每次循環的時候都是從零開始的

正在回答

3 回答

import java.util.Arrays;

public class HelloWorld {


? ? public static void main(String[] args) {

int[] scores={89,-23,64,91,119,52,73};

HelloWorld hello= new HelloWorld();

System.out.println("成績前三名的是:");

hello.getScores(scores);

}

public void getScores(int[] scores)

{

Arrays.sort(scores);

int sum=0;

for (int i=scores.length-1;i>=0;i--)

{

if(scores[i]<0||scores[i]>100)

{

continue;

}

sum++;

if(sum>3)

{

break;

}

System.out.println(scores[i]);

}

}


}


? ??

? ??


0 回復 有任何疑惑可以回復我~

import java.util.Arrays;

public class All {

/*

*1、 考試成績已保存在數組 scores 中,數組元素依次為 89 , -23 , 64 , 91 , 119 , 52 , 73


*2、 要求通過自定義方法來實現成績排名并輸出操作,將成績數組作為參數傳入


*3、 要求判斷成績的有效性( 0—100 ),如果成績無效,則忽略此成績

*/ ? ?

? ? //完成 main 方法

? ? public static void main(String[] args) {

? ? int[] scores={89,-23,64,91,119,52,73};?

? ? All outscores=new All();

? ? outscores.three(scores);

? ? } ??

? ? //定義方法完成成績排序并輸出前三名的功能

public void three(int[] scores){

Arrays.sort(scores);

int count=1;

for(int i=scores.length-1;i>=0;i--){

if(scores[i]<0 || scores[i]>100){

continue;

}

if(count<=3) {

System.out.println(scores[i]);

count++;

}

}

}

}

? ?

? ??

? ??

? ??


1 回復 有任何疑惑可以回復我~

沒有說明你的問題

0 回復 有任何疑惑可以回復我~
#1

imooc_粉絲 提問者

不好意思,我給忘記了,按照題目的要求只需要輸出前三名即可,我的結果卻是把結果全部都輸出來了,我找不出錯誤在哪
2016-11-04 回復 有任何疑惑可以回復我~
#2

imooc_粉絲 提問者

我找到問題了,我的計數器定義在for循環內了,相當于每次循環我的計數器都是從零開始計算的
2016-11-04 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

大家進來幫我看看哪里出現了錯誤了,我輸出的結果是全部輸出了,不管怎么判斷都是這樣的,哪里的邏輯出現了錯誤了

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號