问题六十一: 在数组score中将要存储某小组C++程序设计的成绩. (一)

2014-11-23 22:30:23 · 作者: · 浏览: 17

[plain]
/* 程序头部注释开始(为避免提交博文中遇到的问题,将用于表明注释的斜杠删除了)
* 程序的版权和版本声明部分
* All rights reserved.
* 文件名称: txt.c
* 作 者: liuyongshui
* 问 题: 在数组score中将要存储某小组C++程序设计的成绩.
* 问题来源:
* 完成日期: 2013 年4 月18日
* 版 本 号: V1.0
*/
#include
#include

float total(float grade[], int num);
float average(float sum, int num);
float deviation(float grade[], float ave, int num); //求偏差
void max_min(float grade[], int num);


int main()
{
int i;
int num;
float sum;
float ave;
float dev; //偏差
float grade[100];

printf("您班上有人?嘻嘻嘻共有:");

scanf("%d", &num);
printf("\n");

for(i=0; i {
printf("输入第%2d位同学的成绩(按EENTER进入):", i);
scanf("%f", &grade[i]);
}

sum= total(grade, num);
printf("\n总成绩为:%0.2f\n", sum);

ave= average(sum, num);
printf("\n平均分为:%0.2f\n", ave);

dev= deviation(grade, ave, num);
printf("\n偏差为:%0.2f\n\n", dev);

max_min(grade, num);

return 0;
}


//sum()函数声明

float total(float grade[], int num) //求总分
{
int i;
float sum=0.0;

for(i=0; i {
sum+=grade[i];
}

return sum;
}
//average()函数声明
float average(float sum, int num) //求平均分
{
float ave;

ave=sum/num;

return ave;
}
//deviation()函数声明
float deviation(float grade[], float ave, int num) //求偏差
{
int i;
float s=0.0;
float dev;

for(i=0; i {
s=s+(grade[i]-ave)*(grade[i]-ave);
}

dev=sqrt(s/(num-1));

return dev;
}

//max_min()函数声明
void max_min(float grade[], int num)
{
int i;
int j=0;
int l=0;
int max_num[100];
int min_num[100];
float max;
float min;

max=min=grade[0];

for(i=0; i {
if(max< grade[i])
{
max= grade[i]; //求最大值
}
if(min> grade[i])
{
min= grade[i]; //求最小值
}
}

for(i=0; i {
if(max== grade[i])
{
max_num[j++]=i; //记录最最大值的学号
}
if(min== grade[i])
{
min_num[l++]=i; //记录最最小值的学号
}
}

printf("最高分为:%0.2f\n", max);
printf("最高分的学号有:");
for(i=0; i {
printf("%d", max_num[i]);
if(i {
printf(",");
}
}
printf("\n\n");

printf("最低分为:%0.2f\n", min);
printf("最低分的学号有:");
for(i=0; i {
printf("%d", min_num[i]);
if(i {
printf(",");
}
}
printf("\n");
}

/* 程序头部注释开始(为避免提交博文中遇到的问题,将用于表明注释的斜杠删除了)
* 程序的版权和版本声明部分
* All rights reserved.
* 文件名称: txt.c
* 作 者: liuyongshui
* 问 题: 在数组score中将要存储某小组C++程序设计的成绩.
* 问题来源:
* 完成日期: 2013 年4 月18日
* 版 本 号: V1.0
*/
#include
#include

float total(float grade[], int num);
float average(float sum, int num);
float deviation(float grade[], float ave, int num); //求偏差
void max_min(float grade[], int num);


int main()
{
int i;
int num;
float sum;
float ave;
float dev; //偏差
float grade[100];

printf("您班上有人?嘻嘻嘻共有:");

scanf("%d", &num);
printf("\n");

for(i=0; i {
printf("输入第%2d位同学的成绩(按EENTER进入):", i);
scanf("%f", &grade[i]);
}

sum= total(grade, num);
printf("\n总成绩为:%0.2f\n", sum);

ave= average(sum, num);
printf("\n平均分为:%0.2f\n", ave);

dev= deviation(grade, ave