C语言编程,求高手 编写程序求某班20位学生三门课(英语,数学,语文)总成绩,并按照总成绩从大到小

C语言编程,求高手编写程序求某班20位学生三门课(英语,数学,语文)总成绩,并按照总成绩从大到小排序... C语言编程,求高手
编写程序求某班20位学生三门课(英语,数学,语文)总成绩,并按照总成绩从大到小排序
展开
 我来答
扈怀炜4h
2015-11-05 · TA获得超过6039个赞
知道大有可为答主
回答量:6907
采纳率:67%
帮助的人:1344万
展开全部
#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;
}
追问
就用数组来实现
追答
这个就是数组了。结构体数组
中考试题库
2015-11-07 · TA获得超过381个赞
知道小有建树答主
回答量:310
采纳率:33%
帮助的人:149万
展开全部
#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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cjj796
2015-11-05 · TA获得超过8709个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3451万
展开全部
你好!用VC6 可以吗
追问
可以的
怎么编写程序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式