2020-04-16

1./结构体的基本用法


//习题

#include<stdio.h>

#include<string.h>;

struct student

{

int mumber;

char name[15];

float chinese;

float math;

float english;

}_student[5];

void FuZhi(int i,int num,char *_name,float _chinens,float _math,float _english)

{

_student[i-1].mumber=num;

strcpy(_student[i-1].name,_name);

_student[i-1].chinese=_chinens;

_student[i-1].math=_math;

_student[i-1].english=_english;

}

//按照学号查找学生信息

void FindMsg(int number)

{

int i;

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

{

if(_student[i].mumber==number)

{

printf("学号:%d\n",number);

printf("姓名:%s\n",_student[i].name);

printf("语文分数:%.1f\n",_student[i].chinese);

printf("数学分数:%.1f\n",_student[i].math);

printf("英语分数:%.1f\n",_student[i].english);

}

}

}

//输出每个人的平均分

void PingJunFen()

{

int i;

float pingjunfen;

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

{

pingjunfen=(_student[i].chinese+_student[i].math+_student[i].english)/3;

printf("学号:%d,姓名:%s,平均分:%.2f\n",_student[i].mumber,_student[i].name,pingjunfen);

}

}

//输出成绩最高的学生分数

void FirstStudent()

{

printf("排名第一的是:\n");

int i,max=0;

float arr[5];

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

{

    arr[i]=_student[i].chinese+ _student[i].math+_student[i].english;

}

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

{

if(max<arr[i])

{

max=arr[i];

}

}

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

{

if(arr[i]==max)

{

printf("学生姓名:%s,语文分数:%.1f,数学分数:%.1f,英语分数:%.1f\n",

_student[i].name,_student[i].chinese,_student[i].math,_student[i].english);

}

}

}

//求出每课的最高分及名字

void SubjectMax()

{

int i;

float Cmax=0,Mmax=0,Emax=0;

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

{

if(Cmax<_student[i].chinese)

{

Cmax=_student[i].chinese;

}

if(Mmax<_student[i].math)

{

Mmax=_student[i].math;

}

if(Emax<_student[i].english)

{

Emax=_student[i].english;

}

}

printf("语文成绩第一是:\n");

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

{

if(Cmax==_student[i].chinese)

{

printf("学号:%d,姓名:%s,分数:%.1f\n",_student[i].mumber,_student[i].name,_student[i].chinese);

}

}

printf("\n\n数学成绩第一是:\n");

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

{

if(Mmax==_student[i].math)

{

printf("学号:%d,姓名:%s,分数:%.1f\n",_student[i].mumber,_student[i].name,_student[i].math);

}

}

printf("\n\n英语成绩第一是:\n");

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

{

if(Emax==_student[i].english)

{

printf("学号:%d,姓名:%s,分数:%.1f\n",_student[i].mumber,_student[i].name,_student[i].english);

}

}

}

//求出每一科平均分

void SubPingjun()

{

int i;

float Cping=0,Mping=0,Eping=0;

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

{

Cping+=_student[i].chinese;

Mping+=_student[i].math;

Eping+=_student[i].english;

}

printf("语文平均分:%.2f\n",Cping/5);

printf("数学平均分:%.2f\n",Mping/5);

printf("英语平均分:%.2f\n",Eping/5);

}

void main()

{

FuZhi(1,1,"赵一",90,88,91);

FuZhi(2,2,"孙二",87,85,80);

FuZhi(3,3,"张三",95,82,90);

FuZhi(4,4,"李四",99,83,95);

FuZhi(5,5,"钱五",86,99,94);

FindMsg(1);

printf("\n\n");

PingJunFen();

printf("\n\n");

FirstStudent();

printf("\n\n");

SubjectMax();

printf("\n\n");

SubPingjun();

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 8,790评论 0 2
  • 目录 什么是协程 多线程 协程 协程的使用场景 协程使用示例 Invoke的缺陷 协程语法 开启协程 终止协程 挂...
    Sherlocked_1212阅读 1,872评论 0 0
  • 什么是库 ? 库就是程序代码的集合,将N个文件组织起来,是共享程序代码的一种方式。库从本质上来说是一种可执行代码的...
    沧海小鱼儿阅读 1,228评论 0 0
  • 今早骑小电驴上班 在第一个红绿灯口被一辆闯红灯的三轮车撞倒,抬头看去只能抓到车尾。不减速,不停顿,不迟疑,是什么样...
    木小堇阅读 871评论 0 1
  • 昨天参加新梦想口才特训班,收获了以下几点:1、职场四我法,解决所有问题的万能公式:我发现+我认为+我建议+我相信,...
    122998fe374d阅读 2,563评论 0 1