【问题标题】:Java 2 dimensional arrays and averageJava 二维数组和平均值
【发布时间】:2014-11-30 20:49:15
【问题描述】:

有人可以帮我做这个作业吗?

我尝试了一些方法,但我不确定我的解决方案是否涵盖所有任务。 我必须编写一个 Java 程序,它用 n 个学生(用户应该输入学生的数量)的第 5 学期的分数(如您所知,只有 5 个分数)初始化一个二维数组。

程序应该输出结果:

  1. 第五学期所有学生的平均成绩;
  2. 平均成绩最高的学生人数;
  3. 平均成绩最低的学生人数;
  4. 平均成绩高于所有学生平均成绩的学生人数;
  5. 平均成绩低于所有学生平均成绩的学生人数;

程序应按如下方式进行数据验证:学生的分数应在 2 到 6 之间,学生人数不应超过 30 人。

到目前为止,这是我的解决方案:

package ocenki;


public static void main(String[] args) {

 Scanner scan = new Scanner (System.in ) ;
 System.out.println ("Enter notes here:") ;

 double [] marks= new double [5] ;

 for ( int i=0; i<=4; i++)   
 {
     System.out.println ("Please, input mark for " + i +(" subject")) ; 

     marks[i] = scan. nextDouble () ; 

     while (marks[i]<2 || marks[i]>6)
     {
         System.out.println ("Please, input marks between 2 and 6:") ;
         marks[i] = scan.nextDouble () ;
     }
 }

 double sum=0; 
 double min=marks[0];
 double max=marks[0];

 for ( int i=0; i<=4; i++)
 {
     sum = sum+marks[i] ; 
     if(marks[i]>max)
     {
         max=marks[i];
     }
     if(marks[i]<min)
     {
         min=marks[i];
     }       
 }
 System.out.println("The average is " + sum/5 + ", the minimum is " + min + " and the maximum is " + max); 
}

【问题讨论】:

  • 它出了什么问题?你期待什么,你看到了什么?
  • 当我运行它时,它以“请输入0主题的标记”开头,它应该从1开始。而且我不知道如何编写问题中的第 4 和第 5 个任务。
  • for ( int i=0; i&lt;=4; i++) 。该行会将i 初始化为0。所以这就是你看到 0 的原因。
  • 是的..我修复了它,然后它不能正常工作......我不知道
  • 啊,我做到了!谢谢:) 但是如何处理 4. 和 5. 有人知道吗?

标签: java arrays average


【解决方案1】:

请为您的 Q-4 和 Q-5 找到解决方案

解决方案

    double avg= sum/5;
 for ( int i=0; i<=4; i++)
 {
     if(marks[i]>avg)
     {
         moreAvg++;
     }
     if(marks[i]<avg)
     {
         lessAvg++;
     }   
 }

完整代码 -

public static void main(String[] args) {

 Scanner scan = new Scanner (System.in ) ;
 System.out.println ("Enter notes here:") ;

 double [] marks= new double [5] ;

 for ( int i=0; i<=4; i++)   
 {
     System.out.println ("Please, input mark for " + (i+1) +(" subject")) ; 

     marks[i] = scan. nextDouble () ; 

     while (marks[i]<2 || marks[i]>6)
     {
         System.out.println ("Please, input marks between 2 and 6:") ;
         marks[i] = scan.nextDouble () ;
     }
 }

 double sum=0; 
 double min=marks[0];
 double max=marks[0];
 int lessAvg=1,moreAvg=0;
 for ( int i=0; i<=4; i++)
 {
     sum = sum+marks[i] ; 
     if(marks[i]>max)
     {
         max=marks[i];
     }
     if(marks[i]<min)
     {
         min=marks[i];
     }       
 }

 double avg= sum/5;
 for ( int i=0; i<=4; i++)
 {
     if(marks[i]>avg)
     {
         moreAvg++;
     }
     if(marks[i]<avg)
     {
         lessAvg++;
     }   
 }

 System.out.println("The average is " +avg + ", the minimum is " + min + " and the maximum is " + max);
 System.out.println("4.The number of students with an average grade greater than the average grade of all students"+moreAvg);
 System.out.println("5.The number of students with an average grade less than the average grade of all students"+lessAvg);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    相关资源
    最近更新 更多