求教,帮忙改一下代码[学生成绩管理系统]
#include<stdio.h>#include<windows.h>
int chengji[26]={56,80,100,94,32,84},z=6;
void zengjia(int x);
void pall();
int change(int a,int b);
void del(int b);
void find(int a);
void paixu();
void mm();
main()
{
int a,b,c;
char ch;
do
{
printf("1:增加一个成绩\n2:显示所有成绩\n3:修改某一个成绩\n4:删除某一个成绩\n5:查找某一个成绩\n6:排序\n7:输出最高和最低成绩\n");
scanf("%d",&a);
switch(a)
{
case 1:printf("请输入一个要增加的成绩");
scanf("%d",&b);
zengjia(b);
printf("已增加成绩%d\n",b);
break;
case 2:pall();
break;
case 3:printf("请输入要替换成绩的学生编号");
scanf("%d",&b);
printf("请输入要替换的成绩");
scanf("%d",&c);
change(b,c);
printf("替换成功\n");
break;
case 4:printf("请输入要删除成绩的学生的编号");
scanf("%d",&b);
del(b);
printf("已删除\n");
break;
case 5:printf("请输入要查找的成绩");
scanf("%d",&b);
find(b);
break;
case 6:paixu();
printf("排序完成\n");
break;
case 7:mm();
break;
default:printf("输入错误!\n");
}
printf("是否继续?按C清屏\n");
ch=getchar();
ch=getchar();
if(ch=='c'||ch=='C')
system("cls");
}while(ch!='n'&&ch!='N');
}
void zengjia(int x)
{
z++;
chengji[z-1]=x;
}
void pall()
{
int i;
for(i=0;i<z;i++)
printf("%d\t",chengji[i]);
printf("\n");
}
int change(int a,int b)
{
chengji[a-1]=b;
return a,b;
}
void del(int b)
{
int i,a[16];
for(;b+1<z;b++)
chengji[b+1]=chengji[b+2];
z--;
}
void find(int a)
{
int b=0,i;
for(i=0;i<z;i++)
if(a==chengji[i])
b++;
printf("共查到%d次此成绩",b);
}
void paixu()
{
int i,j,tmp;
for(i=z-2;i>=0;i--)
for(j=z-1;j>=z-1-i;j--)
if(chengji[j]<chengji[j-1])
{
tmp=chengji[j];
chengji[j]=chengji[j-1];
chengji[j-1]=tmp;
}
}
void mm()
{
int b,c,i;
b=chengji[0];
c=chengji[0];
for(i=1;i<z;i++)
{
if(chengji[i]>b)
b=chengji[i];
if(chengji[i]<c)
c=chengji[i];
}
printf("最大值为%d,最小值为%d\n",b,c);
}
/*
帮忙改成结构体的,然后先显示功能菜单,后输入成绩。
在其中分别调用其他的自定义函数,实现不同的功能
1 行参和实参都有数组(例:zengjia(int a[],int a));
2 函数1:增加一个成绩
3 函数2:显示所有成绩
4 函数3:修改某一个成绩
5 函数4:删除某一个成绩
函数5:查找某一个成绩
函数6:排序
函数7:输出最高和最低成绩
(主函数中,有菜单提示,能重复实现功能)