ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

习题13(结构体)

2021-12-14 20:34:49  阅读:147  来源: 互联网

标签:13 struct stc int st score printf 习题 结构


1、程序改错题:以下程序功能是对任意输入的5个学生成绩中找出最高分成绩及其对应的姓名。

#include <stdio.h>

struct student

{

char name[10];int score;

};

void main()

{

int i,max=0;

struct student st[5],*p=st,*q=st;

for(i=0;i<5;i++)

{

printf("请输入第%d个学生信息(姓名 成绩):",i+1);

scanf("%s%d",st[i].name,&st[i].score);

}

for (;p<st+5;p++)

{

if(max<p->score)

{

max=p->score;

q=p;

}

}

printf("成绩最高的学生信息是:%s:%d\n",q->name,q->score);

}

 

 

2、编写结构体stuscore(学号,英语,C语言,数据库,编译原理)kemuaver(科目,平均分)

  编程实现:根据输入的5个学生的成绩计算出每科的平均分并存入相应的结构体变量中并输出科目及其对应的平均分。

#include <stdio.h>

struct stuscore{

char sid[5];

int  en;

int  clan;

int  data;

int  bianyi;

}stc[5]={};

struct kemuaver

{ char sub[10];

float  avg;

}av[4]={"英语:",0,"C语言:",0,"C语言:",0,"编译原理:",0};

 

 

void main()

{

int i,sum[4]={0};

for(i=0;i<5;i++){

printf("请输入第%d个学生信息(学号 英语 C语言 C语言 编译原理):",i+1);

scanf("%s%d%d%d%d",stc[i].sid,&stc[i].en,&stc[i].clan,&stc[i].data,&stc[i].bianyi);

}

for(i=0;i<5;i++){

sum[0]+=stc[i].en;

sum[1]+=stc[i].clan;

sum[2]+=stc[i].data;

sum[3]+=stc[i].bianyi;

}

for(i=0;i<4;i++){

av[i].avg=sum[i]/5;

}

printf("科的平均成绩是:");

for(i=0;i<4;i++)

{

printf("%s%.2f  ",av[i].sub,av[i].avg);

}

printf("\n");

}

3、编写结构体stu(学号,姓名,成绩)

   编写函数:对stu结构体类型的n个学生按成绩由高到低排序

   编程实现:任意输入5个学生的信息,按成绩由高到低排序并输出成绩排序后的信息(可任选排序方法实现)。

#include <stdio.h>

struct st

{

    char sid[10];

    char name[10];

    int score;

} st[5] = {},t[5]={};

void sort(struct st st[],struct st t[],int len);

void main()

{

    int i,j;

    int len=sizeof(st)/sizeof(st[0]);

    for (i = 0; i < 5; i++)

    {

        printf("请输入第%d个学生信息(学号 姓名 成绩):", i+1);

        scanf("%s%s%d", st[i].sid, st[i].name, &st[i].score);

    }

    sort(st,t,len);

    printf("按成绩从高到底排列为:\n");

    for(i=len-1;i>=0;i--){

        printf("%s %s %d\n",t[i].sid,t[i].name,t[i].score);

    }

}

void sort(struct st st[],struct st t[],int len)

{

    int i,j;

    for(i=0;i<len;i++){

        for(j=0;j<len-i;j++){

            if(st[j].score>st[j+1].score){

                t[j]=st[j];

                st[j]=st[j+1];

                st[j+1]=t[j];

            }

        }

    }

}

 

标签:13,struct,stc,int,st,score,printf,习题,结构
来源: https://www.cnblogs.com/xpl520/p/15689813.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有