我不能
Javacode:
import java.util.Scanner;
public class onem {
public static void main (String[]args) {
Scanner k=new Scanner(System.in);
int sum=0;
int i=1;4
int min=0;
int max=0;
int avg=0;
while(i<=10) {
int n;
System.out.println("write a number");
n=k.nextInt();
if (n<min) {
n=min;
}
else{}
if (n>max) {
max=n;
}
sum=sum+n;
i++;
}
avg=sum/10;
System.out.println(min);
System.out.println(avg);
System.out.println(max);
}
}
答案 0 :(得分:1)
这是因为max和min的初始值
int min=0;
int max=0;
int avg=0;
while(i<=10) {
int n;
System.out.println("write a number");
n=k.nextInt();
现在,因为min是0,如果你的输入是正面的,那么说 -
"1,2,3,4,5,6,7,8,9,10"
此块
if (n<min) {
n=min;
}
else{}
if (n>max) {
max=n;
}
将产生0作为min,而显然它应该是1
另一种情况是你的输入是
"-1,-2,-3,-4,-5,-6,-7,-8,-9,-10"
您的代码将生成最大值为0,而它应为-1。
因此将默认值更改为
min = Integer.MAX_VALUE; // Maximum value
max = Integer.MIN_VALUE; // Minimum value
答案 1 :(得分:0)
为您的条件添加大于零的检查:
if (n<min && n>0) {
n=min;
}
else{}
if (n>max && n>0) {
max=n;
}
答案 2 :(得分:0)
不是100%确定我理解你的问题,但听起来你想让用户输入负数但保持min大于0。
要做到这一点,只需更改
即可if (n < min) {
到
if (n < min && n > 0) {
稍微澄清一下您的问题(样本输入/输出会有所帮助),我们将能够为您提供更多帮助。
答案 3 :(得分:0)
您需要将值最小值指定为
int min=Integer.MAX_VALUE;
将您的逻辑更改为
if(n>0){ //which will allow positive value
if (n<min) {
min=n;// Assign min with value
}
if (n>max) {
max=n;
}
}