c语言程序设计c语言

有 10 名学生,每个学生包括学号、姓名、成绩.要求按成绩从高到低的顺序输出学生的学号和姓名,并输出学生的平均成绩.

#include(stdio.h) main() {struct student {long number; char name[20]; float score[4]; }person[10]; int i; printf("请输入10名学生的学号、姓名、及三门成绩:"); for(i=0;i<10;i++) scanf("%d,%s,%d,%d,%d",&person[i]->number,person[i]->name,&person->score[0],&person->score[1],&person->score[2]); for(i=0,i<10;i++) person->score[3]=(person->score[0]+person->score[1]+person->score[2])/3; printf("10名同学的情况如下:\n"); for(i=0;i<10;i++) printf("学号:%d 姓名:%s 成绩:%d %d %d 平均成绩:%d\n",person[i]->number,person[i]->name[20],person->score[0],person->score[1],person->score[2],person->score[3]); } 


/*有10个学生,每个学生的数据包括学号、姓名、成绩,从键盘输入10个学生数据*/

#include <stdio.h>
#define N 10
struct Student{
    char num[10];
    char name[10];
    float score;
}student[N]; 
int main()
{
    int i,j,k;
    float sum = 0.0,max = 0.0;
    
    printf("请输入学生信息:\n");
    for(i = 0;i < N;i++)
    {
        printf("学生学号:"); 
        scanf("%s",student[i].num);
        printf("学生姓名:");
        scanf("%s",student[i].name);
        printf("学生成绩:");
        scanf("%f",&student[i].score);
        printf("\n"); 
    }
    for(i = 0;i < N;i++)
    {
        sum += student[i].score;    
    }    
    for (i=0; i<N-1; i++){ /* 外循环为排序趟数,len个数进行len-1趟 */
        for (j=0; j<N-1-i; j++) { /* 内循环为每趟比较的次数,第i趟比较len-i次 */
            if (student[j].score > student[j+1].score) { /* 相邻元素比较,若逆序则交换(升序为左大于右,降序反之) */
                float temp = student[j].score;
                student[j].score= student[j+1].score;
                student[j+1].score = temp;
                char name[] = student[j].name;
                student[j].name= student[j+1].name;
                student[j+1].name = name;
                char num[] = student[j].num;
                student[j].num= student[j+1].num;
                student[j+1].num = num;
            }
        }
    } 
    printf("学号\t姓名\t分数\n")
    for(i = 0;i < N;i++)
    {
        printf("%s\t%s\t%.2f\n",student[i].name,student[i].num,student[i].score);    
    }
    printf("平均成绩是:%f\n",sum / 3);
}


代码如上,万望采纳

#include <stdio.h>


struct student
{
    char num[10];
    char name[10];
    double score;
};


int main()
{
    struct student stu[]={{"001","zhang01",99},
    {"002","zhang02",88},
    {"003","zhang03",60},
    {"004","zhang04",70},
    {"005","zhang05",80},
    {"006","zhang06",66},
    {"007","zhang07",77},
    {"008","zhang08",85},
    {"009","zhang09",83},
    {"010","zhang10",60},
    };
    
    double sum=0;
    
    for(int i=0;i<10-1;i++)
    {
         for(int j=0;j<10-1-i;j++)
         {
           if(stu[j].score<=stu[j+1].score)
           {
               
               struct student tmp;
               tmp=stu[j];
               stu[j]=stu[j+1];
               stu[j+1]=tmp;
           }      
         } 
    }
    for(int i=0;i<10;i++)
       sum+=stu[i].score;
    
    
    printf("成绩排名如下:(平均分:%.2lf)\n",sum/10);
    for(int i=0;i<10;i++)
        printf("%s\t %s\t %lf\n",stu[i].num,stu[i].name,stu[i].score);
  
        

    return 0;
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632