skn4
2015-08-13 01:31
采纳率: 42.9%
浏览 1.7k
已采纳

大神帮看下我的代码哪里错了?

题目是编写程序,读入未指定个数的整数,判断读入的正数和负数分别有多少个,然后计算这些输入值的总和及其平均值(不对0计数)。当输入为0时,表明程序结束。将平均值以浮点数显示。

import java.util.Scanner;
public class TextXXXXX {
public static void main (String[] args){
Scanner input = new Scanner(System.in);
int count1 = 0 , count2 = 0 , sum = 0 , num;
double avg;
System.out.print("请输入一个整数,输入0时结束:");
num = input.nextInt();
while(num != 0){
System.out.print("请输入一个整数,输入0时结束:");
num = input.nextInt();
while(num > 0)
count1+=1;
while(num < 0)
count2+=1;
sum+=num;
}
avg = sum /(count1 + count2);
System.out.println("整数个数为:" + count1 + " 负数个数为:" + count2);
System.out.println("和为:" + sum);
System.out.println("平均值为:"+ avg);
}
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • 丵鹰 2015-08-13 01:46
    已采纳
     public static void main(String[] args) {
            int count1 = 0, count2 = 0, sum = 0, num;
            double avg;
            for (int i = 1; i >0; i++) {
                Scanner input = new Scanner(System.in);
                System.out.print("请输入一个整数,输入0时结束:");
                num = input.nextInt();
                if (num > 0)
                    count1 += 1;
                if (num < 0)
                    count2 += 1;
                if(num==0){
                    break;
                }
                sum += num;
    
            }
            avg = sum*1.0 / (count1 + count2);
            System.out.println("整数个数为:" + count1 + " 负数个数为:" + count2);
            System.out.println("和为:" + sum);
            System.out.println("平均值为:" + avg);
    
        }
    
    点赞 打赏 评论
  • super小靖 2015-08-13 01:38

    while(num > 0)
    count1+=1;
    while(num < 0)
    count2+=1;
    这个地方有死循环,while改成if

    点赞 打赏 评论
  • 猜个 2015-08-13 01:40

    while(num > 0)
    count1+=1;
    while(num < 0)
    count2+=1;
    这个地方错了,应该用if,因为你每次循环到这并没有改变num的值,所以num就始终死循环了,把while改成if

    点赞 打赏 评论
  • zw0283 2015-08-13 01:50

    while里用if,否则容易出死循环的

    点赞 打赏 评论
  • havedream_one 2015-08-13 02:27

    1,while换成if,
    2,计算平均数的时候,要使用sum*1.0/(count1+coutn2),否则的话丢掉小数部分

    点赞 打赏 评论
  • 木大白易 2015-08-13 03:46

    while换成if就好了!

    点赞 打赏 评论
  • wankaiss2 2015-08-13 09:05

    while死循环了,建议写个判断然后break掉也可以。不然直接用if循环。

    点赞 打赏 评论
  • sina-csdn 2015-08-14 02:27

    死循环啦换乘ifjiu好啦

    点赞 打赏 评论

相关推荐 更多相似问题