Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用While循环查找数字的平均值_Java - Fatal编程技术网

Java 使用While循环查找数字的平均值

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

我知道这是个基本问题,但我解决不了,所以我需要你的帮助。。 我试图通过使用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;


  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);
    }
}