欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言学习笔记:|| 一维数组 ||求学生人数、班级最高分、哪位同学最高分、班级课程平均分

程序员文章站 2022-07-13 08:35:26
...

C语言学习笔记:|| 一维数组 ||求学生人数、班级最高分、哪位同学最高分、班级课程平均分

1.程序设计:
按要求输入学生的单科分数(若输入负数等其他字符则结束再输入学生的单科分数)

//数组--学生人数、计算班级最高分、哪位同学最高分、班级平均分。
#include <stdio.h>
#include <math.h>
#define N 40
int Inputscore(int score[]);
int Findmaxvalue(int score[], int n);
int Findmaxindex(int score[], int n);
float Average(int score[], int n);
int main()
{
  int score[N], maxvalue, n, maxindex;
  float aver;
  n=Inputscore(score);
  printf("学生的总人数是%d人。\n", n);
  maxvalue = Findmaxvalue(score, n);
  maxindex = Findmaxindex(score, n);
  aver = Average(score, n);
  printf("本班级里最高分为%d,是编号为score[%d]的同学。\n", maxvalue, maxindex);
  printf("本班级里平均分为%.2f。\n",aver);
  return 0;
}


int Inputscore(int score[])
{
  int i=-1;
  printf("please input the score:\n");
  do
  {
	i++;
    scanf("%d",&score[i]);
  }
  while(score[i]>=0);
  return i;
}


int Findmaxvalue(int score[], int n)
{ 
  int maxvalue, i;
  maxvalue=score[0];
  for(i=1; i<n; i++)
  {
    if(score[i]>maxvalue)
	  maxvalue=score[i];
  }
  return maxvalue;
}


int Findmaxindex(int score[], int n)
{
  int i, maxindex=0;
  for(i=0; i<n; i++)
  {
    if(score[i]>score[maxindex])
	{
	  maxindex=i;
	}
  }
  return maxindex;
}

float Average(int score[], int n)
{
   int i, sum=0;
   float aver;
   for(i=0; i<n; i++)
   {
     sum+=score[i];
   }
   aver=(float)sum / n;
   return aver;
}

2.运行结果:
编号下标从0开始,score[2]即是第三各学生的分数。平均分保留2位小数。
C语言学习笔记:|| 一维数组 ||求学生人数、班级最高分、哪位同学最高分、班级课程平均分