c语言成绩的录入、总分、平均分、排序、求最大最小值的下标

效果图:
代码:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#define MAXSTU 15
void login();
void menu();
int input(int score[]);
void output(int score[],int n);
void SumAvg(int score[],int n);
void MaxMin(int score[],int n);
void grade(int score[],int n);
void SortUp(int score[],int n);
void SortDown(int score[],int n);
void main()
{
int score[MAXSTU];
int count=0;
int choose;
login();
while(1)
{
menu();
printf("\t\t 请选择主菜单序号 (0-7)");
scanf("%d",&choose);
switch(choose)
{
case 1:count=input(score);
break;
case 2:output(score,count);
break;
case 3:SumAvg(score,count);
break;
case 4:MaxMin(score,count);
break;
case 5:grade(score,count);
break;
case 6:SortUp(score,count);
break;
case 7:SortDown(score,count);
break;
case 0:return;
default:printf("\n\n\n 输入无效请重新选择 \n");
}
printf("\n\n\n 按任意键返回主菜单 ");
getch();
}
}
void login()
{
char pwd[10]="tdk32";
char ch[10];
int re;
printf(" 请输入密码: \n");
gets(ch);
re=strcmp(ch,pwd);
if(re==0)
puts(" 密码正确,登陆成功 ");
else
{
puts(" 密码不正确,请重新输入: ");
login();
}
}
void menu()
{
system("cls");
printf("\n\n");
printf("\t\t ******************************************\n");
printf("\t\t 学生成绩管理系统 \n");
printf("\t\t ******************************************\n");
printf("\t\t 1 录入学生成绩 \n");
printf("\t\t 2 显示学生成绩 \n");
printf("\t\t 3 统计总分和平均分 \n");
printf("\t\t 4 统计最高分和最低分 \n");
printf("\t\t 5 统计各分段人数 \n");
printf("\t\t 6 从小到大排序输出 \n");
printf("\t\t 7 从大到小排序输出 \n");
printf("\t\t 0 退出 \n");
printf("\t\t ******************************************\n");
}
int input(int score[])
{
int i;
printf("\n 输入学生成绩 ( 输入 -1 退出 )\n");
for(i=0;i<MAXSTU;i++)
{
printf("\t %d 个学生的成绩为: ",i+1);
scanf("%d",&score[i]);
if(score[i]==-1)
break;
}
return i;
}
void output(int score[],int n)
{
int i;
printf("\n\n 学生成绩 :");
printf("\n 学号 \t\t 成绩 ");
for(i=0;i<n;i++)
{
printf("\n%d\t\t%d",1001+i,score[i]);
}
}
void SumAvg(int score[],int n)
{
int i,sum=0;
float ave=0;
for(i=0;i<n;i++)
{
sum+=score[i];
}
ave=sum/n;
printf("\n 总分为 %d, 平均分为 %.2f\n",sum,ave);
}
void MaxMin(int score[],int n)
{
int i,max=0,min=0,p,q;
max=score[0];
min=score[0];
for(i=0;i<n;i++)
{
if(score[i]>max)
{
max=score[i];
p=i;
}
if(score[i]<min)
{
min=score[i];
q=i;
}
}
printf("\n 最高分为: %d, 下标为 %d, 最低分为: %d, 下标为 %d\n",max,p,min,q);
}
void grade(int score[],int n)
{
int i;
int grade1=0;
int grade2=0;
int grade3=0;
int grade4=0;
int grade5=0;
for(i=0;i<n;i++)
{
if(score[i]<60) grade5++;
else if(score[i]<70&&score[i]>=60) grade4++;
else if(score[i]<80&&score[i]>=70) grade3++;
else if(score[i]<90&&score[i]>=80) grade2++;
else if(score[i]<=100&&score[i]>=90) grade1++;
}
printf("\n\n 等级为优的人数: %d",grade1);
printf("\n 等级为良的人数: %d",grade2);
printf("\n 等级为中的人数: %d",grade3);
printf("\n 等级为合格的人数: %d",grade4);
printf("\n 等级为不合格的人数: %d",grade5);
}
void SortUp(int score[],int n)
{
int i,j,d;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
{
if(score[j]<score[i])
{
d=score[j];
score[j]=score[i];
score[i]=d;
}
}
for(i=0;i<n;i++)
{
printf("%d\n",score[i]);
}
}
void SortDown(int score[],int n)
{
int i,j,d;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
{
if(score[j]>score[i])
{
d=score[j];
score[j]=score[i];
score[i]=d;
}
}
for(i=0;i<n;i++)
{
printf("%d\n",score[i]);
}
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值