该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
C语言求大神修改(怎么才能一下子输入所有成绩再进行运行?或者说怎么才可以把里面原有的成绩删除)
#include
#define MAX 100
/* 显示菜单 */
void ShowMenu()
{
printf("\n");
printf("||===================================||\n");
printf("||-----------------------------------||\n");
printf("||-------学生成绩查询系统------------||\n");
printf("||-----------------------------------||\n");
printf("||-----------------------------------||\n");
printf("||-----------------------------------||\n");
printf("||===================================||\n");
printf("\n\n\n");
printf("|----------------------------------|\n");
printf("|----------请输入(0-6)-----------|\n");
printf("| 1. 输入成绩------------|\n");
printf("| 2. 显示成绩------------|\n");
printf("| 3. 查询平均分----------|\n");
printf("| 4. 查询最高分----------|\n");
printf("| 5. 成绩排名------------|\n");
printf("| 6. 退出----------------|\n");
printf("|----------------------------------|请输入0-6 : ");
}
/* 排序 */
void Sort(int arr[], int n)
{
int i, j, k;
int temp;
for(i=0; i
{
k = i;
for(j=i+1; j
{
if(arr[j] > arr[k])
{
k = j;
}
}
if(k != i)
{
temp = arr[k];
arr[k] = arr[i];
arr[i] = temp;
}
}
}
void main(){
int choice;
int scores[MAX] = {80, 78};/* 存储成绩 */
int n = 2;/* 人数 */
int back[MAX];
int max;/* 最高分 */
double avg;/* 平均分 */
int i;
while(1)
{
ShowMenu();
scanf("%d", &choice);
switch(choice)
{
case 1:/* 输入成绩 */
{
printf("请输入新成绩:");
scanf("%d", &scores[n]);
n++;
break;
}
case 2:/* 显示成绩 */
{
printf("成绩列表:\n");
for(i=0; i
{
printf("%4d", scores[i]);
}
printf("\n");
break;
}
case 3:/* 查询平均分 */
{
avg = 0;
for(i=0; i
{
avg += scores[i];
}
avg /= n;
printf("平均分:%.2lf\n", avg);
break;
}
case 4:/* 查询最高分 */
{
max = scores[0];
for(i=1; i
{
if(scores[i] > max)
{
max = scores[i];
}
}
avg /= n;
printf("最高分:%d\n", max);
break;
}
case 5:/* 成绩排名 */
{
for(i=0; i
{
back[i] = scores[i];
}
Sort(back, n);
printf("成绩排名:\n");
printf("%8s%8s\n", "名次", "成绩");
for(i=0; i
{
printf("%8d%8d\n", i+1, back[i]);
}
printf("\n");
break;
}
case 6:/* 退出 */
{
return;
}
default:/* 继续 */
{
break;
}
}
}
}