Java 使用While循环查找数字的平均值
我知道这是个基本问题,但我解决不了,所以我需要你的帮助。。 我试图通过使用While循环找到数字(用户输入)的平均数,例如,数字789的平均数是(7+8+9+)/3=8。 有人能帮我做这个吗。。?非常感谢你Java 使用While循环查找数字的平均值,java,Java,我知道这是个基本问题,但我解决不了,所以我需要你的帮助。。 我试图通过使用While循环找到数字(用户输入)的平均数,例如,数字789的平均数是(7+8+9+)/3=8。 有人能帮我做这个吗。。?非常感谢你 import java.util.Scanner; public class AVE { static int digits = 0; static int average =0; static int sum =0; static int number; pub
import java.util.Scanner;
public class AVE
{
static int digits = 0;
static int average =0;
static int sum =0;
static int number;
public static void main (String[]args)
{
Scanner kb = new Scanner (System.in);
System.out.println("what is your number?");
number = kb.nextInt();
avDigits();
System.out.println("The average is " + average);
}
public static void avDigits()
{
int num = number;
while (num > 0)
{
digits += 1;
sum += digits % 10;
num/=10;
}
average = (sum/digits);
}
}
您使用的是
数字的mod,而不是num
。更改while循环,如下所示:
while (num > 0)
{
digits += 1;
sum += num % 10; //<< Take mod of num here
num/=10;
}
while(num>0)
{
位数+=1;
sum+=num%10;//您的问题在于mod。您可以按如下方式重写代码,修改不仅是为了更正错误,而且是为了使其标准化。您需要将average更改为float或double
import java.util.Scanner;
public class AVE {
public static void main(String[] args) {
int number;
float average = 0;
Scanner kb = new Scanner(System.in);
System.out.println("what is your number?");
number = kb.nextInt();
average = avDigits(number);
System.out.println("The average is " + average);
}
private static float avDigits(int number) {
int digits = 0;
float sum = 0.0F;
while (number > 0) {
digits += 1;
sum += number % 10;
number /= 10;
}
return (sum / digits);
}
}
你如何保证平均值可以用整数来表示?如果需要更改,我已经在代码中对它们进行了注释。请查看它们。我同意这个答案
import java.util.Scanner;
public class AVE {
public static void main(String[] args) {
int number;
float average = 0;
Scanner kb = new Scanner(System.in);
System.out.println("what is your number?");
number = kb.nextInt();
average = avDigits(number);
System.out.println("The average is " + average);
}
private static float avDigits(int number) {
int digits = 0;
float sum = 0.0F;
while (number > 0) {
digits += 1;
sum += number % 10;
number /= 10;
}
return (sum / digits);
}
}