【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
#主函数 main 中输入一组(10 个)C 语言成绩值到数组 score[ ]中,并输出如图所 示的主菜单,根据不同的选择调用 相应函数,编写函数分别实现: (1)输出平均成绩; (2)成绩排序并输出; (3)输出比平均值低的成绩值,及个数; (4)输出及格率 (5)输入一个成绩值进行查找,输出找到或未找到。 (6) 排序后,输入一个成绩值,将其添加到 score[ ]中并保持原来的顺序。
#include<stdio.h>
#include <stdlib.h>
int Menu();
void HandleMenu();
void inputScore();
void PrintAveScore(float sco[]);
void SortScore(float sco[]);
void PrintScore(float sco[]);
void PrintBadScoreAndCount(float sco[]);
void PassRate(float sco[]);
void FindScore(float sco[]);
void AddScore(float sco[]);
float score[20];
int count=10;
//////主函数main
int main()
{
inputScore();
while(1){
HandleMenu();
}
return 0;
}
//////菜单
int Menu(){
int sel;
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");
scanf("%d",&sel);
return sel;
}
///////控制菜单
void HandleMenu()
{
int select;
select=Menu();
switch(select){
case 1:
PrintAveScore(score);
break;
case 2:
SortScore(score);
break;
case 3:
PrintBadScoreAndCount(score);
break;
case 4:
PassRate(score);
break;
case 5:
FindScore(score);
break;
case 6:
AddScore(score);
break;
default:exit(0);
}
}
//////输入成绩
void inputScore()
{
int i;
for(i=0;i<10;i++){
printf("请输入第%d成绩:",i+1);
scanf("%f",&score[i]);
getchar();
}
}
/////输出平均值
void PrintAveScore(float sco[])
{
int i;
float ave=0;
for(i=0;i<10;i++){
ave+=sco[i];
}ave/=10;
printf("%.0f",ave);
}
/////排序
void SortScore(float sco[])
{
int i,j,t;
for(i=0;i<9;i++){
for(j=0;j<9-i;j++){
if(sco[j]>sco[j+1]){
t=sco[j];
sco[j]=sco[j+1];
sco[j+1]=t;
}}}PrintScore(sco);
}
//////打印成绩
void PrintScore(float sco[])
{
int i;
for(i=0;i<count;i++){
printf("%.2f\t",sco[i]);
}printf("\n");
}
/////输出低于平均分的成绩及个数
void PrintBadScoreAndCount(float sco[])
{
float ave=0;
int i;
int BadScoreCount=0;
for(i=0;i<10;i++){
ave+=sco[i];
}
ave/=count;
printf("低于平均分%f的成绩有",ave);
for(i=0;i<10;i++){
if(sco[i]<ave){
printf("%.0f\t",sco[i]);
BadScoreCount++;
}
}printf("%d个\n",BadScoreCount);
}
///////输出及格率
void PassRate(float sco[])
{
int i;
float psrate=0;
for(i=0;i<10;i++){
if(sco[i]>=60)
psrate++;
}psrate/=10;
printf("及格率为%.2f\n",psrate);
}////////查找成绩//////
void FindScore(float sco[])
{
float findsco;
int i;
printf("请输入要查找的成绩\n");
scanf("%f",&findsco);
for(i=0;i<count;i++){
if(sco[i]==findsco){
printf("找到了,它在第%d个位置上!\n",i);
break;
}
}
if(i>=count)
printf("没找到\n");
}
///排序后添加成绩////
void AddScore(float sco[]){
float s;
int i,pos;
printf("请输入要添加的成绩\n");
scanf("%f",&s);
SortScore(score);
for(i=0;i<count;i++){
if(s>sco[i]){
pos=i;
break;
}
}
for(i=count-1;i>=pos;i--){
sco[i+1]=sco[i];
}
sco[pos]=s;
count++;
PrintScore(sco);
}
来源:oschina
链接:https://my.oschina.net/u/4227903/blog/3146217