答案

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类型,再进行运算

仅供参考,如有更优解,可在评论区参与讨论

届ける言葉を今は育ててる
最后更新于 2022-04-02