答案
import java.util.Scanner;
import java.math.*;
public class Main {
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
int z=0,f=0,zong=0,zheng=0,fu=0;
int a;
a=in.nextInt();
do {
zong+=a;
if (a>0) {
z++;
zheng+=a;
}
if(a<0) {
f++;
fu+=a;
}
a=in.nextInt();
} while (a!=0);
System.out.println(z);
System.out.println(f);
System.out.println(zong);
System.out.println((zong*1.0)/(z+f));
}
}
思路:1、先定义四个变量 分别保存总的个数、正数的个数、负数的个数、整数的总和、负数的总和
2、读入第一个数字,进入do-while循环(参考文献:Java中的循环结构-菜鸟教程),因为不管他是正数还是负数,总数都会加1,所以在判断正负之前就可以先把总数加上刚刚读入的数。
3、判断正负,并对对应的个数及总和进行运算
4、最后按题目要求输出即可
易错点:1、如果第一个数就是零,导致除数为0,抛出错误;2、出现(整数除),整数除以整数,结果还是整数,小数部分会被直接舍弃,所以在进行除法之前,先对其乘以1.0,将其转为double类型,再进行运算
仅供参考,如有更优解,可在评论区参与讨论
Comments NOTHING