提高篇十六讲——项目2- 成绩处理
2017-04-09 13:08
204 查看
问题描述
【项目2- 成绩处理】
在数组score中将要存储某小组C程序设计的成绩,请完成下面的处理:
(1)输入小组人数及成绩,要保证成绩在0-100之间;
(2)输出该小组的最高成绩、最低成绩、平均成绩;
(3)输出考得最高成绩和最低成绩的同学的人数;
(4)输出考得最高成绩和最低成绩的同学的学号(设数组下标即学号,可能有相同的成绩)。
(5)(选做)求出所有同学成绩的标准偏差,标准偏差公式为
,其中为样本(即某同学成绩),
为均值(前面已经求出),N为样本数目;
程序代码
#include <stdio.h>
#include <math.h>
#define SIZE 100
/*
*csdn学院--2016级
*目的:让代码见证成长(作为一个初学的菜鸟,如
*大家有发现错误,欢迎指正!)
*文件名称:Myfun138.c
*作者:小臣小仁
*完成日期:2017年4月9日
*/
void Statistics(int [],int n);
int main()
{
int array[SIZE];
int i,student;
printf("小组共用多少名童鞋?");
scanf("%d",&student);
for(i=0;i<student;i++)
do
{
printf("输入第%d位童鞋的成绩:",i+1);
scanf("%d",&array[i]);
}while(array[i]<0||array[i]>100);
printf("\n");
Statistics(array,student);
return 0;
}
void Statistics(int array[],int n)
{
int i,j,k,l,m,y;
int num1=0,num2=0;
double aver,sum=0.0,sample=0.0;
int max,min;
max=array[0];
min=array[0];
for(i=0;i<n;i++)
{
if(array[i]>max)
max=array[i];
if(array[i]<min)
min=array[i];
sum+=array[i];
}
aver=sum/n;
printf(" 最高成绩为:%d 最低成绩为:%d 平均成绩为:%.3f\n",max,min,aver);
for(j=0;j<n;j++)
{
if(array[j]==max)
num1++;
else if(array[j]==min)
num2++;
}
printf(" 最高成绩有%d名,学号为:",num1);
for(k=0;k<n;k++)
if(array[k]==max)
printf(" %d",k+1);
printf("\n");
printf(" 最低成绩有%d名,学号为:",num2);
for(l=0;l<n;l++)
if(array[l]==min)
printf(" %d",l+1);
printf("\n");
for(m=0;m<n;m++)
{
y=array[m]-aver;
sample+=y*y;
}
printf(" 标准偏差为:%.4f\n",sqrt(sample/(n-1)));
}
输出结果
心得体会
[b]作为一个大学二的菜鸟,开始慢慢前进,多多少少感到有收获,由于水平有限,多多少少有错,望包涵
[/b]
【项目2- 成绩处理】
在数组score中将要存储某小组C程序设计的成绩,请完成下面的处理:
(1)输入小组人数及成绩,要保证成绩在0-100之间;
(2)输出该小组的最高成绩、最低成绩、平均成绩;
(3)输出考得最高成绩和最低成绩的同学的人数;
(4)输出考得最高成绩和最低成绩的同学的学号(设数组下标即学号,可能有相同的成绩)。
(5)(选做)求出所有同学成绩的标准偏差,标准偏差公式为
,其中为样本(即某同学成绩),
为均值(前面已经求出),N为样本数目;
程序代码
#include <stdio.h>
#include <math.h>
#define SIZE 100
/*
*csdn学院--2016级
*目的:让代码见证成长(作为一个初学的菜鸟,如
*大家有发现错误,欢迎指正!)
*文件名称:Myfun138.c
*作者:小臣小仁
*完成日期:2017年4月9日
*/
void Statistics(int [],int n);
int main()
{
int array[SIZE];
int i,student;
printf("小组共用多少名童鞋?");
scanf("%d",&student);
for(i=0;i<student;i++)
do
{
printf("输入第%d位童鞋的成绩:",i+1);
scanf("%d",&array[i]);
}while(array[i]<0||array[i]>100);
printf("\n");
Statistics(array,student);
return 0;
}
void Statistics(int array[],int n)
{
int i,j,k,l,m,y;
int num1=0,num2=0;
double aver,sum=0.0,sample=0.0;
int max,min;
max=array[0];
min=array[0];
for(i=0;i<n;i++)
{
if(array[i]>max)
max=array[i];
if(array[i]<min)
min=array[i];
sum+=array[i];
}
aver=sum/n;
printf(" 最高成绩为:%d 最低成绩为:%d 平均成绩为:%.3f\n",max,min,aver);
for(j=0;j<n;j++)
{
if(array[j]==max)
num1++;
else if(array[j]==min)
num2++;
}
printf(" 最高成绩有%d名,学号为:",num1);
for(k=0;k<n;k++)
if(array[k]==max)
printf(" %d",k+1);
printf("\n");
printf(" 最低成绩有%d名,学号为:",num2);
for(l=0;l<n;l++)
if(array[l]==min)
printf(" %d",l+1);
printf("\n");
for(m=0;m<n;m++)
{
y=array[m]-aver;
sample+=y*y;
}
printf(" 标准偏差为:%.4f\n",sqrt(sample/(n-1)));
}
输出结果
心得体会
[b]作为一个大学二的菜鸟,开始慢慢前进,多多少少感到有收获,由于水平有限,多多少少有错,望包涵
[/b]
相关文章推荐
- 提高项目13-成绩处理 函数版
- 提高篇编程项目 第十九讲项目二/三 成绩处理 当年第几天(数组方案)
- 提高篇 第16-19课后---项目2 - 成绩处理
- 提高项目22-成绩处理函数版 (参数)
- 第14周项目2--成绩处理。
- 14周项目2-成绩的处理
- 第十四周上机任务项目3 - 成绩处理第二季
- 14周任务项目3:成绩处理(2)
- 第十四周项目三—成绩处理第二季
- 十四周上机实践项目(二)处理学生成绩
- 【数组】14周项目三。成绩处理
- 第十四周项目2 成绩处理
- 成绩处理 项目2
- 第14周项目6-成绩处理
- 第14周项目7-成绩处理函数版
- 第十四周 项目二--成绩处理
- 第十四周项目3 成绩处理第二季
- 14周项目二:成绩处理
- C++第1周项目3——结构体数组处理学生成绩
- 第14周项目3--成绩处理函数版