成绩处理 定义数组为局部变量 人数为局部变量

这是一个C++程序,用于输入一组学生的成绩,计算并输出最高分、最低分、平均分以及最高分和最低分的学生人数。程序定义了数组和人数为局部变量,并包含输入、计算和输出功能函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*         
* Copyright (c) 2012, 烟台大学计算机学院         
* All rights reserved.         
* 作 者:  刘同宾       
* 完成日期:2012 年 12 月 02 日         
* 版 本 号:v1.0  
*               
* 输入描述:    
* 问题描述:【项目3- 成绩处理】在数组score中将要存储某小组C++程序设计的成绩,请设计完成下面的各功能函数,并将它们组合成一个完整的应用:
*  (1)输入小组人数及成绩;
*  (2)输出该小组的最高成绩、最低成绩、平均成绩和成绩的标准偏差(标准偏差公式:,其中为样本,为均值,为样本数目);
*  (3)输出考得最高成绩和最低成绩的同学的人数及对应的学号(设成绩对应的下标即学号,可能有相同的成绩)
*  (4)(选做)输出前3名同学的学号——可以先不考虑有并列名次的情况,再考虑有并列的情况。
* 程序输出:
* 问题分析:略        
* 算法设计:略         
*/


#include<iostream>

using namespace std;

void input(int score[],int n);

int max(int score[],int n);

int min(int score[],int n);

double average(int score[],int n);

int count1(int score[],int n,int s);

void num(int score[],int n,int s);

int main()
{
	int n;      //小组人数也设为局部变量,将作为函数的实际参数 

    int score[50]; //将score设为局部变量,通过数组名作函数参数,传递数组首地址,在函数中操作数组 

	int max1,min1;

	cout<<"请输入有几位学生:"<<endl;

	cin>>n;

    input(score,n);

	max1=max(score,n);

	cout<<"最高成绩:"<<max1

		<<"共有:"<<count1(score,n,max1)<<"人。"

		<<endl;

	min1=min(score,n);

	cout<<"最低成绩:"<<min1
		
		<<"共有"<<count1(score,n,min1)<<"人。"
		
		<<endl;

	cout<<"平均成绩为:"<<average(score,n)<<endl;

	cout<<"最高成绩的学号有:";

	num(score,n,max1);

	cout<<"最低成绩的学号有:";

	num(score,n,min1);

	return 0;
}



//最高成绩
int max(int score[],int n)
{
	int i;

	int max1=score[0];

	for(i=0;i<n;i++)
	{
		if(score[i]>max1)
		{
			max1=score[i];
		}
	}

	return max1;
}



//最低成绩
int min(int score[],int n)
{
	int i;

	int min1=score[0];

	for(i=0;i<n;i++)
	{
		if(min1>score[i])
		{
			min1=score[i];
		}
	}
	
	return min1;
}


//平均成绩
double average(int score[],int n)
{
	int i;

	double t=0,average1;

	for(i=0;i<n;i++)
	{
		t=t+score[i];
	}

	average1=t/n;

	return average1;
}

//最高,低,分数人数

int count1(int score[],int n,int s)
{
	int i;

	int count=0;;

	for(i=0;i<n;i++)
	{
		if(score[i]==s)
		{
			count++;
		}
	}

	return count;
}



//最高,低分的人的下标
void num(int score[],int n,int s)
{
	int i;

	for(i=0;i<n;i++)
	{
		if(score[i]==s)
		{
			cout<<i+1<<" ";
		}
	}
}

//输入函数

void input(int score[],int n)
{
	int i;

	for(i=0;i<n;i++)
	{
		cout<<"请输入第"<<i+1<<"个学生的成绩:";

		cin>>score[i];

		cout<<endl;
	}

	return;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值