C语言编程,求高手 编写程序求某班20位学生三门课(英语,数学,语文)总成绩,并按照总成绩从大到小
C语言编程,求高手编写程序求某班20位学生三门课(英语,数学,语文)总成绩,并按照总成绩从大到小排序...
C语言编程,求高手
编写程序求某班20位学生三门课(英语,数学,语文)总成绩,并按照总成绩从大到小排序 展开
编写程序求某班20位学生三门课(英语,数学,语文)总成绩,并按照总成绩从大到小排序 展开
3个回答
展开全部
#include <stdio.h>
#define N 5
struct student
{
float math;
float language;
float english;
} s[N];
void input()
{
for(int i=0;i<N;i++)
scanf("%f%f%f",&s[i].math,&s[i].language,&s[i].english);
}
void sortStudent()
{
for(int i=0;i<N-1;i++)
{
int k=i;
for(int j=i+1;j<N;j++)
if(s[k].math+s[k].language+s[k].english>s[j].math+s[j].language+s[j].english)
k=j;
float t;
t=s[k].math;
s[k].math=s[i].math;
s[i].math=t;
t=s[k].language;
s[k].language=s[i].language;
s[i].language=t;
t=s[k].english;
s[k].english=s[i].english;
s[i].english=t;
}
}
void show()
{
printf("数学\t语文\t英语\t总分\n");
for(int i=0;i<N;i++)
printf("%5.2f\t%5.2f\t%5.2f\t%6.2f\n",s[i].math,s[i].language,s[i].english,s[i].math+s[i].language+s[i].english);
}
int main()
{
input();
show();
sortStudent();
show();
return 0;
}
追问
就用数组来实现
追答
这个就是数组了。结构体数组
展开全部
#include <stdio.h>
#define N=20
struct student
{
char name[4];
float english;
float math;
float chinese;
float total;
}
struct student stu[N];
int i,j;
void input(void)
{
for(i=0;i<N;i++)
{
memset(&stu[i],0,sizeof(student));
printf("请输入学生姓名:");
scanf("%[^\n]",stu[i].name);
fflush(stdin);
printf("请输入英语成绩:");
scanf("%f",&stu[i].english);
fflush(stdin);
printf("请输入数学成绩:");
scanf("%f",&stu[i].math);
fflush(stdin);
printf("请输入语文成绩:");
scanf("%f",&stu[i].chinese);
fflush(stdin);
stu[i].total=stu[i].english+stu[i].math+stu[i].chinese;
printf("姓名\t英语\t数学\t语文\t总分\n\n");
printf("%-8s\t%3.2f\t%3.2f\t%3.2f\t%3.2f\n\n",stu[i].name,stu[i].english,stu[i].math,stu[i].chinese,stu[i].total);
}
}
void sortstu(void)
{
struct student temp;
for(i=0;i<N-1;i++)
{
for(j=i+1;j<N;j++)
{
if(stu[i].total<stu[j].total)
{
temp=stu[j];
stu[j]=stu[i];
stu[i]=temp;
}
}
}
}
void show(void)
{
printf("姓名\t英语\t数学\t语文\t总分\n\n");
for(i=0;i<N;i++)
{
printf("%-8s\t%3.2f\t%3.2f\t%3.2f\t%3.2f\n\n",stu[i].name,stu[i].english,stu[i].math,stu[i].chinese,stu[i].total);
}
}
int main(void)
{
input();
sortstu;
show;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好!用VC6 可以吗
追问
可以的
怎么编写程序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询