我知道这可能是我做错了.我希望它在循环结束时打印最小数字等,但它总是打印为最低的零.如何让它不将退出机制归零为最低数字.
有什么建议吗?
class HighLowAve
{
public static void main (String[]args)
{
int num =0;
int sum;
int highest;
int lowest;
int index;
Double average;
highest = num;
lowest = num;
sum = 0;
index = 0;
do
{
System.out.println("Enter a number. Press zero to quit ");
num = EasyIn.getInt();
if (num > highest)
{
highest = num;
}
else if (num < lowest)
{
lowest = num;
}
sum = sum + num;
index++;
}while (num !=0);
average = (double) sum/(index-1);
System.out.println("The highest number was " + highest);
System.out.println("The lowest number was " + lowest);
System.out.println("The average number was " + average);
}
}
Run Code Online (Sandbox Code Playgroud)
你highest和lowest变量都从0开始.所以如果你的数字都是负数,你将得到highest0,不正确.如果你的数字都是正数,你将得到lowest0,不正确.
只是开始highest = Integer.MIN_VALUE,并lowest = Integer.MAX_VALUE再一次迭代将结束与正确的highest和lowest值.
| 归档时间: |
|
| 查看次数: |
2055 次 |
| 最近记录: |