如何用c语言编写程序实现:键盘上输入n个学生姓名、学号、语文成绩、数学成绩,
计算每个学生的总成绩并排序。
定义学生结构,循环输入学生信息,用冒泡排序
#include <stdio.h>
//typedef
struct student
{
int id;
int score;
} t[30];
int post=0,n,max;
void r()
{
int k;
printf("输入学生个数:");
scanf("%d",&n);
printf("输入学号和分数:\n");
for(k=0; k<n; k++)
{
scanf("%d%d",&t[k].id,&t[k].score);
}
z();
return;
}
void sort()
{
int j,k;
struct student tem;
for(k=0; k<n-1; k++)
{
for(j=0; j<n-k-1; j++)
{
if(t[j].id>t[j+1].id)
{
tem=t[j];
t[j]=t[j+1];
t[j+1]=tem;
}
}
}
for(k=0; k<n; k++)
{
printf("学号:%d 成绩:%d\n",t[k].id,t[k].score);
}
z();
return;
}
void m()
{
int j,k;
max=t[0].score;
for(k=1; k<n; k++)
{
if(t[k].score>max)
{
max=t[k].score;
post=k;
}
}
printf("最高分数:%d 学号为:%d",max,t[k].id);
z();
return;
}
int z()
{
printf("1.Append record\n");
printf("2.Sort in ascending order by number\n");
printf("3.Caculate Max. score of course and number\n");
printf("0.Exit\n");
printf("Please enter your choice:\n");
int c=0;
scanf("%d",&c);
switch (c)
{
case 1:
r();
break;
case 2:
sort();
break;
case 3:
m();
break;
case 0:
break;
default:
printf("error!");
break;
}
return 0;
}
int main()
{
z();
return 0;
}
#include<stdio.h>
#define maxsize 100
int a[maxsize];
int main()
{
int n=0;
int sum=0;
printf("请输入学生人数n:");
scanf("%d",&n);
printf("请输入%d个学生的成绩:",n);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
}
printf("学生平均成绩为:%d\n",sum/n);
printf("高于平均分的成绩为:");
for(i=0;i<n;i++)
{
if(a[i]>sum/n)
printf("%d ",a[i]);
}
printf("\n");
return 0;
}