用C语言编写一个程序

主函数main中输入一组(10个)C语言成绩值到数组score[ ]中,并输出如图所示的主菜单,根据不同的选择调用
相应函数,编写函数分别实现:
1- 输出平均值
2- 排序成绩
3- 输出比平均值低的成绩和个数
4- 输出及格率
5- 查找成绩
6- 添加成绩
0- 结束程序

#include <stdio.h>
#include <stdlib.h>
/*
主函数main中输入一组(10个)C语言成绩值到数组score[ ]中,
并输出如图所示的主菜单,根据不同的选择调用相应函数,编
写函数分别实现:
1- 输出平均值
2- 排序成绩
3- 输出比平均值低的成绩和个数
4- 输出及格率
5- 查找成绩
6- 添加成绩
0- 结束程序
*/
//1、平均成绩函数
double AveScores(double [], double);
double AveScores(double score[], double count)
{
int i;
double sums = 0;
double average;
for(i = 0; i < count; i++)
{
sums += score[i];
}
average = sums / count;
return average;
}
//排序成绩函数由小到大
void SortScores(double [], int);
void SortScores(double score[], int count)
{
int i, j;
double temp;
for(i = 0; i < count; i++)
{
for(j = 0; j < count - i - 1; j++)
{
if(score[j] > score[j + 1])
{
temp = score[j + 1];
score[j + 1] = score[j];
score[j] = temp;
}
}
}
}
//输出比平均值低的成绩个数
double LowAve (double [], int, double);
double LowAve (double score[], int count, double average)
{
int i= 0;
double countlow = 0;
for(i = 0; i < count; i++)
{
if(score[i] < average)
{
countlow++;
}
}
return countlow;
}
//查找成绩
void FindScore(double [], int);
void FindScore(double score[], int count)
{
int i;
int index;
double input;
printf("请输入要查找的成绩");
scanf("%lf", &input);
for(i = 0; i < count; i++)
{
if(score[i] == input)
{
printf("找到了!此成绩在第%d个\n",i);
}
}
}
//添加成绩
int AddScore(double [], int);
int AddScore(double score[], int count)
{
int i = 0;
printf("请用户输入要添加的成绩:");
while(scanf("%lf", &score[i + count]) != 1 || &score[i + count] < 0)
{
fflush(stdin);
printf("请重新输入正数:");
}
count++;
return count;
}
int main()
{
int i, j;
int index; //数组元素下标
int choice; //用户选择
double average; //平均成绩
double temp; //临时变量
int count = 10; //成绩个数最多支持100个
double countlow; //低于平均成绩的个数
double score[100] = {76, 68, 98, 87, 71, 65, 49, 54, 80, 61};
double lowScore[100]; //用来存放低于平均成绩的数组
do
{
printf("*********************************\n");
printf("1、输出平均值\n");
printf("2、排序成绩\n");
printf("3、输出比平均值低的成绩和个数\n");
printf("4、输出及格率\n");
printf("5、查找成绩\n");
printf("6、添加成绩\n");
printf("0、结束程序\n");
printf("*********************************\n");
printf("请选择功能:");
while(scanf("%d", &choice) != 1 || choice < 0 || choice > 6)
{
fflush(stdin);
printf("请重新输入0-6的数字:");
}
switch(choice)
{
case 1://1- 输出平均值
average = AveScores(score,count);
printf("平均成绩为%.2lf\n", average);
break;
case 2://2- 排序成绩
SortScores(score,count);
printf("排序后成绩为:\n");
for(i = 0; i < count; i++)
{
printf("第%d个成绩:\t",i + 1);
printf("%.2lf\n",score[i]);
}
break;
case 3://3- 输出比平均值低的成绩和个数
for(i = 0; i < count; i++)
{
lowScore[i] = score[i];
}
SortScores(lowScore,count);
average = AveScores(score, count);
countlow = LowAve(lowScore,count,average);
printf("低于平均成绩的个数为%.0lf\n", countlow);
for(i = 0; i < countlow; i++)
{
printf("第%d个低于平均的成绩:\t",i + 1);
printf("%.2lf\n",lowScore[i]);
}
break;
case 4://4- 输出及格率
average = AveScores(score, count);
countlow = LowAve(score,count,average);
printf("及格率为:%.2lf%%%\n",100 - countlow / count * 100);
break;
case 5://5- 查找成绩
FindScore(score,count);
break;
case 6://6- 添加成绩
count = AddScore(score,count);
break;
}
}while(choice != 0);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
相似回答