java求平均分,求解

qq_873939295 2017-09-20 01:00:34
Input
输入每一行第一个整数n,表示待求平均分的班级人数有n个人,接着是n个人的分数。
当n==0时,输入结束,不用输出。

Output
请输出每个班级的平均分,结果保留两位小数。


Sample Input
2 100 0
3 90 80 70
0

Sample Output
50.00
80.00
...全文
796 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39764082 2017-09-23
  • 打赏
  • 举报
回复
import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Test1 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); while(true){ System.out.print("请输入班级人数:");int num=sc.nextInt();System.out.println(); if(num==0){ break; } System.out.print("请分别输入成绩:"); double score[]=new double[num]; int sum=0; for(int i=0;i<num;i++){ score[i]=sc.nextDouble(); sum+=score[i]; } System.out.println("该班级平均分为"+sum/num); } } } //是这样吗??
IT自学妹 2017-09-22
  • 打赏
  • 举报
回复
都是技术大牛
qq_873939295 2017-09-22
  • 打赏
  • 举报
回复
引用 10 楼 zzyxiaoyao123 的回复:
package practice; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Pingjunzhi { /** * @param args */ public static void main(String[] args) { Scanner in =new Scanner(System.in); int sum=0; List<Double> ans=new ArrayList<Double>(); int n; while(in.hasNext()){ n=in.nextInt(); if(n!=0){ for(int i=0;i<n;i++){ sum+=in.nextInt(); } ans.add(1.0*sum/n); sum=0; } else break; } for(int i=0;i<ans.size();i++){ System.out.printf("%.2f",ans.get(i)); System.out.println(); } in.close(); } } 运行结果: 2 100 0 3 90 80 70 0 50.00 80.00
这个的运行结果只能输入一组就输出结果了
zzyxiaoyao123 2017-09-21
  • 打赏
  • 举报
回复
package practice; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Pingjunzhi { /** * @param args */ public static void main(String[] args) { Scanner in =new Scanner(System.in); int sum=0; List<Double> ans=new ArrayList<Double>(); int n; while(in.hasNext()){ n=in.nextInt(); if(n!=0){ for(int i=0;i<n;i++){ sum+=in.nextInt(); } ans.add(1.0*sum/n); sum=0; } else break; } for(int i=0;i<ans.size();i++){ System.out.printf("%.2f",ans.get(i)); System.out.println(); } in.close(); } } 运行结果: 2 100 0 3 90 80 70 0 50.00 80.00
jarcem 2017-09-21
  • 打赏
  • 举报
回复
基本上是初级的水平,求平均分的话用一个数组或者是接累加,用两个变量统计人数和总分
qq_873939295 2017-09-21
  • 打赏
  • 举报
回复
引用 7 楼 yuxiangaaaaa 的回复:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * 结束标识设为-1,不能是0,因为有的分数可能为0,输入0就结束了
 * Sample Input
   2  100  0
   3   90   80  70
   -1
   
   Sample Output
   50.00
   80.00
 * @author 
 *
 * 2017-9-21
 */
public class Test {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("Sample Input:");
		List<Integer> list = new ArrayList<Integer>();
		while(sc.hasNextInt()){
			int d = sc.nextInt();
			if(d!=-1){
				list.add(d);
			}else{
				break;
			}
		}
		System.out.println("Sample Output:");
		int n = list.get(0);//list里面第一个数就是第一个班级的人数
		printScore(list, n);
	}
	public static void printScore(List<Integer> list, int n){
		int sum = 0;		
		list.remove(0);//移除第一个班级的人数,接下来前n个数就是第一个班级的分数
		for (int i = 0; i < n; i++) {
			sum += list.get(0);
			list.remove(0);//每次取出一个数,就把这个数删掉
		}
		System.out.printf("%.2f",1.0*sum/n);//循环一次结束后,接着list的第一个元素就是第二个班级的人数,递归调用
		System.out.println();
		while(list.size()>0){			
			printScore(list, list.get(0));
		}
	}
}
运行结果: Sample Input: 2 100 0 3 90 80 70 -1 Sample Output: 50.00 80.00
这个是可以的 但是题目是当n==0时,输出结束,并且分数中可以输入0
我黑怪JAVA 2017-09-21
  • 打赏
  • 举报
回复

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while(sc.hasNext()){
			int num;
			if((num=sc.nextInt())==0)
				return;
			int sum = 0;
			for(int i =0 ;i<num;i++){
				sum += sc.nextInt();
			}
			System.out.printf("%.2f",1.0*sum/num);
			System.out.println();
		}		
	}
}
自由自在_Yu 2017-09-21
  • 打赏
  • 举报
回复
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * 结束标识设为-1,不能是0,因为有的分数可能为0,输入0就结束了
 * Sample Input
   2  100  0
   3   90   80  70
   -1
   
   Sample Output
   50.00
   80.00
 * @author 
 *
 * 2017-9-21
 */
public class Test {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("Sample Input:");
		List<Integer> list = new ArrayList<Integer>();
		while(sc.hasNextInt()){
			int d = sc.nextInt();
			if(d!=-1){
				list.add(d);
			}else{
				break;
			}
		}
		System.out.println("Sample Output:");
		int n = list.get(0);//list里面第一个数就是第一个班级的人数
		printScore(list, n);
	}
	public static void printScore(List<Integer> list, int n){
		int sum = 0;		
		list.remove(0);//移除第一个班级的人数,接下来前n个数就是第一个班级的分数
		for (int i = 0; i < n; i++) {
			sum += list.get(0);
			list.remove(0);//每次取出一个数,就把这个数删掉
		}
		System.out.printf("%.2f",1.0*sum/n);//循环一次结束后,接着list的第一个元素就是第二个班级的人数,递归调用
		System.out.println();
		while(list.size()>0){			
			printScore(list, list.get(0));
		}
	}
}
运行结果: Sample Input: 2 100 0 3 90 80 70 -1 Sample Output: 50.00 80.00
qq_873939295 2017-09-20
  • 打赏
  • 举报
回复
引用 1 楼 cl61917380 的回复:
说实话写这个没啥意义 方法就是:

	public static void main(String[] args) {
		System.out.println("input :");
		
		boolean flag = true;
		while(flag){
			Scanner input = new Scanner(System.in);//初始化
			int num = input.nextInt();
		}
	}
从键盘输入我知道 就是卡在 怎么输入首个整数n 然后输入n个整数 在回车重新输入
kanya_it 2017-09-20
  • 打赏
  • 举报
回复
一看就是刚入行的
自由自在_Yu 2017-09-20
  • 打赏
  • 举报
回复
一看就像是老师布置的作业题目呀
那场遇见 2017-09-20
  • 打赏
  • 举报
回复
很简单的 最好自己想想去写.
coooliang 2017-09-20
  • 打赏
  • 举报
回复
说实话写这个没啥意义
方法就是:

public static void main(String[] args) {
System.out.println("input :");

boolean flag = true;
while(flag){
Scanner input = new Scanner(System.in);//初始化
int num = input.nextInt();
}
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧