精华内容
下载资源
问答
  • 计算5门课程平均成绩

    千次阅读 2020-05-06 21:24:44
    键盘循环录入某学生的5门课程成绩(成绩使用int数据类型)并计算平均分(平均分使用double数据类型)。 代码如下: public static double getAveScore(){ Scanner sc = new Scanner(System.in); double sum = 0; ...

    键盘循环录入某学生的5门课程的成绩(成绩使用int数据类型)并计算平均分(平均分使用double数据类型)。

    代码如下:

    public static double getAveScore(){
    
            Scanner sc = new Scanner(System.in);
            
            double sum = 0;
            int i = 0;
            while (i < 5){
                int score = sc.nextInt();
                if(score < 0 || score > 100)
                    continue;
                sum += score;
                i++;
            }
            
            return sum / 5;
    }
    
    展开全文
  • 没有东西输出 怎么回事
  • 编写程序计算三门平均成绩,要求应用程序分别用Java不同的循环语句实现。每门课的成绩用Math类的random()方法随机产生。成绩范围在40-100之间。分别用while、for,do-while结构实现
  • 计算门课平均分 3.找出所有50个分数最高的分数所对应的学生和课程4.计算平均方差*/ #include <stdio.h> #include <math.h> #define N 3 typedef struct { float x1; float x2; float x3; ...
    /*输入10个学生5门课的成绩, 分别用函数实现以下功能1.计算每个学生的平均分2.计算每门课的平均分
    3.找出所有50个分数最高的分数所对应的学生和课程4.计算平均方差*/
    
    #include <stdio.h>
    #include <math.h>
    #define N 3
    typedef struct
    {
    	float x1;
    	float x2;
    	float x3;
    	float x4;
        float x5;
    }student;
    typedef struct
    {
    	int m;//记录分数最高的那个人 
    	int n;//记录分数最高的课程
    	float s; 
    }re;
    
    //计算每个学生的平均分
    int fun1(student stu[10])
    {
    	int i;
    	float sum = 0;
    
    	for(i = 0;i < N;i++)
    	{
    		sum = stu[i].x1 + stu[i].x2 + stu[i].x3 + stu[i].x4+ stu[i].x5;
    		printf("第%d个学生的平均分是:%f\n",i+1,sum/5);
    	}
    }
    //计算每门课的平均分
    int fun2(student stu[10])
    {
    	int i,j;
    	float sum = 0.0;
    	
    	for(i = 0;i < 5;i++)
    	{
    		switch(i)
    		{
    			case 0:
    				{
    					sum = 0.0; 
    					for(j = 0;j < N;j ++)
    						sum = sum + stu[j].x1;
    					printf("第一门课的平均分是:%f\n",sum/N);
    					break;
    				}
    			case 1:
    				{
    					sum = 0.0;
    					for(j = 0;j < N;j ++)
    						sum = sum + stu[j].x2;
    					printf("第二门课的平均分是:%f\n",sum/N);
    			        break;
    				}
    			case 2:
    				{
    					sum = 0.0;
    					for(j = 0;j < N;j ++)
                        	sum = sum + stu[j].x3;
    					printf("第三门课的平均分是:%f\n",sum/N);
    					break;
    				}
    			case 3:
    				{
    					sum = 0.0;
    					for(j = 0;j < N;j ++)
    						sum = sum + stu[j].x4;
    					printf("第四门课的平均分是:%f\n",sum/N);
    					break;
    				}
    			case 4:
    				{
    					sum = 0.0; 
    					for(j = 0;j < N;j ++)
    						sum = sum + stu[j].x5;
    					printf("第五门课的平均分是:%f\n",sum/N);
    					break;
    				}	
    		}
    	}
    		
    }
    
    //找出所有50个分数最高的分数所对应的学生和课程
    int fun3(student stu[10])
    {
    	float max ;
    	int i,j;
    	re r[N];
    	for(i = 0;i < N;i++)
    	{
    		r[i].m = i + 1;//记录下最高分数的学生 
    		r[i].n = 1;//记录下最高分数的课程 
    		r[i].s = stu[i].x1;//记录下最高分数 
    		max = stu[i].x1;
    		if(stu[i].x2 > max)
    		{
    			r[i].n = 2;
    			max = stu[i].x2;
    			r[i].s = max;
    		}
    	    if(stu[i].x3 > max)
    		{
    			r[i].n = 3;
    			max = stu[i].x3;
    			r[i].s = max;
    		} 
    		if(stu[i].x4 > max)
    		{
    			r[i].n = 4;
    			max = stu[i].x4;
    			r[i].s = max;	
    		}
    		if(stu[i].x5 > max)
    		{
    			r[i].n = 5;
    			max = stu[i].x5;
    			r[i].s = max;
    		}	
    	}
    	
    	max = r[0].s;
    	j = 0;
    	for(i = 1;i < N;i++)
    	{
    		if(r[i].s > max)
    		j = i;
    	}
    	
    	printf("第%d个学生的第%d个课程分数最高\n",r[j].m,r[j].n);	
    }
    // 平均方差
    int fun4(student stu[10])
    {
    	float fj,sum,sum1 = 0.0,sum2 = 0.0;
    	int i;
    	
    	for(i = 0;i < N;i++)
    	{
    	    sum = 0.0;
    		sum = stu[i].x1 + stu[i].x2 + stu[i].x3 + stu[i].x4+ stu[i].x5;
    		sum1 = sum1 + pow(sum / 5,2);
    		sum2 = sum2 + sum / 5;
    	}
    	
    	fj = sum1 / N - pow(sum2 / N,2);
    	
    	printf("方差是:%f",fj);
    }
    int main()
    {
    	student stu[10];
    	int i;
    
    	printf("请输入成绩:\n");
    	for(i = 0;i < N;i++)
    	{
    		scanf("%f %f %f %f %f",&stu[i].x1,&stu[i].x2,&stu[i].x3,&stu[i].x4,&stu[i].x5);
    	}
        
        fun1(stu);
        fun2(stu);
        fun3(stu);
        fun4(stu);
    
    }
    
    

    谭浩强C程序设计(第四版)p219第14题
    这道题我用结构体做的,当然还可以采用二维数组

    /*输入10个学生5门课的成绩, 分别用函数实现以下功能1.计算每个学生的平均分2.计算每门课的平均分
    3.找出所有50个分数最高的分数所对应的学生和课程4.计算平均方差*/
    
    #include <stdio.h>
    #include <math.h>
    #define N 3
    #define M 5 
    
    //计算每个学生的平均分
    int fun1(int a[N][M])
    {
    	int i,j;
        float sum = 0.0;
    
    	for(i = 0;i < N;i++)
        {
        	sum = 0.0;
        	for(j = 0;j < M;j++)
        	{
        		sum = sum + a[i][j];
    		}
    		printf("第%d个学生的平均分是:%f\n",i+1,sum/5);
    	}   	
    }
    
    //计算每门课的平均分
    int fun2(int a[N][M])
    {
    	int i,j;
    	float sum;
    	
    	for(i = 0;i < M;i++)
    	{
    		sum = 0.0; 
    		for(j = 0;j < N;j++)
    		{
    			sum += a[j][i];
    		}
    		printf("第%d门课的平均分是:%f\n",i+1,sum/N);
    	}
    }
    
    //找出所有50个分数最高的分数所对应的学生和课程
    int fun3(int a[N][M])
    {
    	int i,j,k,l;
    	float max;
    	
    	max = a[0][0];
    	k = 0;//最大值的横坐标 
    	l = 0;//最大值的纵坐标 
    	
    	for(i = 0;i < N;i++)
    	{
    		for(j = 0;j < M;j++)
    		{
    			if(a[i][j] > max)
    			{
    				max = a[i][j];
    				k = i;
    				l = j; 
    			}
    		}
    	}
    	
    	printf("最高的分数的学生是学生%d和第%d课程\n",k+1,l+1);
    }
    
    //计算平均方差
    int fun4(int a[N][M])
    {
    	int i,j;
    	float sum,sum1,sum2,fj;
    	sum = sum1 = sum2 = 0.0;
    	
    	for(i = 0;i < N;i++)
    	{
    		sum = 0.0;
    		for(j = 0;j < M;j++)
    		{
    			sum = sum + a[i][j];
    		}
    		sum1 = sum1 + pow(sum / 5,2);
    		sum2 = sum2 + sum / 5; 
    	}
    	
    	fj = sum1 / N - pow(sum2 / N,2);
    	
    	printf("方差是:%f",fj);
    }
    int main()
    {
    	int a[N][M];
        int i,j;
       
        printf("请输入成绩:\n"); 
        for(i = 0;i < N;i++)
        {
        	for(j = 0;j < M;j++)
        	{
        		scanf("%d",&a[i][j]);
    		}
    	}
    	
    	fun1(a);
    	fun2(a);
    	fun3(a);
    	fun4(a);
     } 
    

    二维数组更加方便

    展开全文
  • //输入五门课成绩,求平均分

    千次阅读 2019-11-14 15:33:00
    public class Test1 { public static void main... //输入五门课成绩,求平均分 Scanner input=new Scanner(System.in); double sum=0;//总和分数 for (int i = 0; i < 5; i++) { System.out.print(...
    public class Test1 {
    	public static void main(String[] args) {
    		//输入五门课的成绩,求平均分 
    		Scanner input=new Scanner(System.in);
    		double sum=0;//总和分数
    		for (int i = 0; i < 5; i++) {
    			System.out.print("请输入第"+(i+1)+"门课的成绩:");
    			double score=input.nextDouble();
    			sum+=score;
    		}
    		System.out.println("五门课的平均成绩是:"+sum/5);
    	}
    }
    

     

    展开全文
  • 本次用 MapReduce 计算门课程平均成绩、最高成绩、最低成绩是我们《大数据基础》课程的期末大作业的功能需求之一。临近期末,在这里记录一下自己的学习收获,希望大家在浏览的过程中有所收获。由于能力有限,...

    本次用 MapReduce 计算每门课程的平均成绩、最高成绩和最低成绩也是我们《大数据基础》课程的期末大作业
    基于MapReduce的成绩分析系统 】 的功能需求之一。

    临近期末,在这里记录一下自己的学习收获,希望大家在浏览的过程中有所收获。

    由于能力有限,博客中难免会存在一些不足,有纰漏之处恳请大佬指正,不胜感激… …💚

    本次该大作业完整的代码我已上传,需要的可以下载:
    基于MapReduce的成绩分析系统实现编程源代码

    博客主页:爱跑步的mango 🌱

    一、数据及字段说明

    首先准备初始的数据,markinput.txt文件。(把该文件上传到伪分布式HDFS下,处理的输入路径对应为:hdfs://localhost:9000/user/hadoop/markinput)

    music,apple,85
    music,banana,54
    music,cherry,86
    music,coconut,85
    music,durian,80
    music,mango,99
    music,grape,85
    music,lemon,75
    music,olive,48
    music,papaya,88
    music,watermelon,85
    english,peach,57
    english,lemon,85
    english,olive,48
    english,strawberry,85
    english,cherry,85
    english,apple,96
    english,mango,85
    english,banana,85
    english,grape,75
    chinese,lemon,75
    chinese,mango,76
    chinese,papaya,85
    chinese,coconut,85
    chinese,olive,42
    chinese,watermelon,81
    math,strawberry,85
    math,mango,76
    math,papaya,85
    math,coconut,48
    math,durian,90
    math,banana,54
    math,apple,85
    math,grape,89
    PE,apple,87
    PE,banana,34
    PE,cherry,96
    PE,coconut,87
    PE,durian,81
    PE,mango,90
    PE,grape,99
    PE,lemon,65
    PE,olive,78
    PE,papaya,68
    PE,watermelon,89
    
    • 以上是处理的数据,该数据每行有三个字段值,分别是course,name,score
      第一个是课程名称,总共五个课程,包括music、chinese、english、math和PE。
      第二个是学生姓名。
      第三个是是每门课程学生考试的分数。

    二、过程分析及解题思路

    • 需求: 计算每门课程的平均成绩、最高成绩、最低成绩
      返回结果格式举例:PE max=99 min=34 average79.5

    • 解题思路: 要计算每门课程的平均成绩、最高成绩、最低成绩,先按照课程分组,然后对各个课程对应的分数做max,min,average的聚合操作。(这里的分组是直接在mapper阶段把课程名称作为输出的key进行分组的,mapper阶段输出的value是每个学生参考某门课程对应的分数,然后将map方法的输出key-value传递给reduce方法。这样每门课程所有的记录会在同一个reduce方法中进行处理。)

    • 关键: mapper阶段和reducer阶段的输入和输出是什么?

    • 对于mapper阶段,map方法输出的key-value分别是
      key: 课程名称 course
      value: 分数 score

    • 对于reducer阶段,reduce方法接收的参数是
      key: 课程名称 course
      values: 某一门课程对应的所有score的一个迭代器

    三、具体代码实现

    package Mapreduce.mark1;
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.Path;
    import org.apache.hadoop.io.LongWritable;
    import org.apache.hadoop.io.Text;
    import org.apache.hadoop.mapreduce.Job;
    import org.apache.hadoop.mapreduce.Mapper;
    import org.apache.hadoop.mapreduce.Reducer;
    import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
    import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    
    public class maxminaverage134 {
    	//把业务逻辑相关的信息(哪个是mapper,哪个是reducer,要处理的数据在哪里,输出的结果放哪里……)描述成一个job对象
        //把这个描述好的job提交给集群去运行
    	  public static void main(String[] args) throws Exception {
    		  if (args.length<2) {
    	            System.out.printf("Usage:%s <input> <output>\n");
    	        }
    		  //创建一个Configuration实体类对象
    	        Configuration conf = new Configuration();
    	        Job job = Job.getInstance(conf, "course maxminaverage");
    	        // 指定我这个job所在的jar包
    	        job.setJarByClass(maxminaverage134.class);
    	        //指定mapper类和reducer类 等各种其他业务逻辑组件
    	        job.setMapperClass(maxminaverage134.averageMapper.class);
    	        job.setReducerClass(maxminaverage134.averageReducer.class);
    	        //指定reducetask的输出类型
    	        job.setOutputKeyClass(Text.class);
    	        job.setOutputValueClass(Text.class);
    	        
    	        Path inputPath = new Path(args[0]);
    	        Path outPutPath = new Path(args[1]); 
    	        FileSystem fs = FileSystem.get(conf);
    	        if (fs.exists(outPutPath)) fs.delete(outPutPath,true);
    	        FileInputFormat.setInputPaths(job,inputPath);
    	        FileOutputFormat.setOutputPath(job,outPutPath);
    	        
    	       //指定处理的输入路径
    	     //   FileInputFormat.setInputPaths(job, new Path("hdfs://localhost:9000/user/hadoop/markinput"));
    			// 指定处理完成之后的结果所保存的位置
    		//	FileOutputFormat.setOutputPath(job, new Path("hdfs://localhost:9000/user/hadoop/maxminaverageoutput"));
    	        
    			//最后向yarn集群提交这个job任务
    			boolean waitForCompletion = job.waitForCompletion(true);
    	        //System.exit(waitForCompletion ? 0 : 1);
    			System.out.println(job.waitForCompletion(true)?1:0);
    	    }
    	  //Mapper组件
    	  //输入的key:     输入的value: course,name,score
    	  //输出的key: couse     输入的value: score
    	  private static class averageMapper extends Mapper<LongWritable, Text, Text, Text> {
    		  //map  方法的生命周期:  框架每传一行数据就被调用一次
    		    //key :  这一行的起始点在文件中的偏移量
    		    //value : 这一行的内容
    	        Text keyOut = new Text();
    	        Text valueOut = new Text();
    	 
    	        @Override
    	        protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
    	        	//代码中  key   是行首字母的【偏移量】-----无规律可言,行首字母到所有内容最前端的
    	        	//value  是一行真正的数据
    	            String[] splits = value.toString().split(",");//.将Text类型的value转换成 string,将这一行用 "," 切分出各个单词
    	            String course = splits[0];
    	            String score = splits[2];
    	 
    	            keyOut.set(course);
    	            valueOut.set(score);
    	 
    	            context.write(keyOut, valueOut);输出数据,context上下文对象
    	        }
    	    }
    	  //Reducer组件:输入的key:      输入的values:
    	  //输出的key:     输入的value:
    	  private static class averageReducer extends Reducer<Text, Text, Text, Text> {  
    	        Text valueOut = new Text(); 
    	        List<Integer> scoreList = new ArrayList<>();
    	 
    	        @Override
    	        protected void reduce(Text key, Iterable<Text> values, Context context) throws IOException, InterruptedException {
    	 
    	            scoreList.clear();
    	            //遍历
    	            for(Text t: values){
    	                scoreList.add(Integer.valueOf(t.toString()));
    	            }
    	            // 求最高成绩和最低成绩
    	            Integer maxScore = Collections.max(scoreList);//java.util.Collections类使用求集合最大值
    	            Integer minScore = Collections.min(scoreList);//java.util.Collections类使用求集合最小值
    	 
    	            int sumScore = 0;
    	            for(int score: scoreList){
    	                sumScore += score;
    	            }
    	            // 求平均成绩
    	            double avgScore = sumScore *1D / scoreList.size()*10;//1D是后缀,是double类型,会自动类型转换
    	            valueOut.set("max="+maxScore + "\t" + "min="+minScore + "\t" +"average"+ Math.round(avgScore)/10D);
    	            context.write(key, valueOut);//输出结果
    	        }
    	    }
    }
    

    四、程序运行结果

    • 程序处理完成之后的结果所保存的位置:hdfs://localhost:9000/user/hadoop/maxminaverageoutput(这是自己定义的位置)。
    • 程序的执行结果(课程名称 最大值 最小值 平均分)
      在这里插入图片描述
      (可见,输出的结果就是我们期望得到的。)

    本次的分享就到这里了,大家对MapReduce了解的基础上也需要配置好相关的环境,以上有任何错误,希望可以得到大佬们的指正,互相学习!✨

    💜 基于MapReduce的成绩分析系统如果想看更多功能实现的学习体验,欢迎访问:

    【基于MapReduce的成绩分析系统】——菜单主界面实现

    【基于MapReduce的成绩分析系统】——计算每门课程的平均成绩、最高成绩、最低成绩

    【基于MapReduce的成绩分析系统】——计算每门课程学生的平均成绩,并将平均成绩从高到低输出

    【基于MapReduce的成绩分析系统】——查找(输入一个学生的姓名,输出该生姓名以及其参加考试的课程和成绩)

    【基于MapReduce的成绩分析系统】——求该成绩表每门课程当中出现了相同分数的分数,出现的姓名以及该相同分数的人数


    展开全文
  • 计算门课平均分; ③找出所有50个分数中最高的分数所对应的学生和课程; ④计算平均分方差 以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj 一、解题思路 思路: ...
  • 首先分析该题,至少要声明三个函数(虽然最后我声明了四个),求每个学生的平均分需要一个函数,每门课平均分需要一个函数,以及找出所有50个分数中最高分数所对应的学生和课程也需要一个函数。 我先声明函数,再...
  • 计算每个学生的平均成绩和每门课程的最高 首先我们先定义一个列表保存5个学生的姓名为names(随机的看个人喜好)然后定义另一个列表存储课程courses,然后生成随机的数字成绩放进courses里面,最终输出即可 names ...
  • 错在哪里了啊
  • 输入10个学生5门课成绩,分别用函数实现下列功能:①计算每个学生的平均分;②计算门课平均分;③找出所有50个分数中最高的分数所对应的学生和课程;④计算平均分方差; б=1/n·∑Xi²-〔∑Xi/n〕²;...
  • //输入5个同学三门计算门课总分以及平均分输出 int main(){ int i,j,score[N][3],sum[3]={0},avg[3]; for(j=0;j<N;j++){ printf("请输入%d位同学三门成绩:\n",j+1); for(i=0;i<3;i++){ ...
  • //循环输入某同学专业阶段考试的5门课成绩,并计算平均分 public void test4(){ double sum=0; System.out.println("请输入姓名:"); String name= new Scanner(System.in).next(); for(int i =1;i<=5;i...
  • 输入3个学生的4门课程的考试成绩,编写程序计算并输出每个学生的平均分和每门课程平均分。救命!!!
  • 输入10个学生5门课成绩, 分别用函数实现以下功能1.计算每个学生的平均分2.计算门课平均分3.找出50个分数最高的分数所对应的学生和课程4.计算平均方差
  • 2.计算门课平均分; 3.找出所有50个分数中最高的分数所对应的学生的课程; 4.计算平均分方差: 其中,xi为某一学生的平均分 #include&lt;stdio.h&gt; #include"math.h" void jisuanave...
  • 代码如下: struct student{ char name[10]; int subject_1; int subject_2; int subject_3; int subject_4; int subject_5; }; void sum1(struct ... //每人平均 void sum2(struct student a[6] ); ...
  • 代码如下: #include <stdio.h> #define M 5 #define N 4 void main(){ int i,j; float score[M][N] = {{78,85,83,65},{88,91,89,93},{72,65,54,75},{86,88,75,60},{69,60,50,...i++){ // 外层循环 逐一计算
  • 8、计算5门课程平均分

    千次阅读 2017-01-11 19:28:30
    需求说明:首先获取键盘录入的学生姓名,然后正确使用for循环,循环获取某同学的S1结业考试的5门课成绩,最后计算平均分并输出,效果如图所示。 package 作业;import java.util.Scanner;public class 作业8计算5...
  • 编写程序实现对M位学生的N门课程成绩进行统计分析,要求:(1)统计出每个学生的总分、平均分及单科最高;(2)统计出每门课平均分、最高;(3)统计出所有学生的最高总分与最高平均分;(4)统计出所有学生总...
  • 利用结构体数组计算每个学生4门课程平均分。 #include<stdio.h> typedef struct date { int year; int month; int day; } DATE; typedef struct student { long studentID;/*学号*/ ...
  • 本次用 MapReduce 计算门课程学生的平均成绩,并将平均成绩从高到低输出是我们《大数据基础》课程的期末大作业的功能需求之一。临近期末,在这里记录一下自己的学习收获,希望大家在浏览的过程中有所收获。由于...
  • * 描述:将学生成绩按班级计算每一门的平均。 * 入参: * 参见studentScoreList * 需求: * 1、得到班级课程平均分的一个list,并打印出来。包含字段:班级名称、课程、平均。 * 2、按平均降序排列。 ...
  • 第1关:输入5个学生的数学、语文、英语3门课程的成绩,计算并输出每一门课程平均成绩和每一位学生的平均成绩 任务描述 本关任务:输入5 个学生的数学、语文、英语 3 门课程的成绩,计算并输出每一门课程平均成绩...
  • 2.计算门课平均分;3.找出所有50个分数中最高的得分所对应的学生和课程;4,计算平均分方差 #include <stdio.h> #include <stdlib.h> void student_avg(double a[][5]) { printf("每个学生的平均...
  • c++实现计算课程总成绩和平均成绩

    千次阅读 2021-01-02 15:43:43
    // 计算课程总成绩和平均成绩 #include using namespace std; class Student{//创建student类 int score; //定义类的对象 static int total; //定义静态数据成员 public: //类为公有类型 Student
  • python脚本:输入学生成绩计算并输出其平均成绩

    万次阅读 多人点赞 2019-06-25 14:43:41
    3.计算该学生的平均成绩,并打印: 4.平均成绩保留两位小数点: 计算该学生语文成绩占总成绩的百分比,并打印。 考查内容: 变量类型转换 、 print输出的格式化 运行环境: Pycharm下的python3.6 实现代码: ...
  • 输入五门成绩,计算成绩的总值与平均值\ #include<stdio.h> #include<stdlib.h> int main(void) { double a = NULL;//双精度定义 初始值为空 double b = NULL; double c = NULL; double d = NULL...
  • 计算门课平均分3.找出50个分数最高的分数所对应的学生和课程4.计算平均方差 #include<stdio.h> const int stu = 10; const int cou = 5; void showDouble(double* p, int len) { for (int i = 0; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,147
精华内容 16,058
关键字:

计算五门课的平均成绩