700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C语言学习笔记之动态内存分配结构体——辣鸡版学生管理系统

C语言学习笔记之动态内存分配结构体——辣鸡版学生管理系统

时间:2022-01-25 21:43:57

相关推荐

C语言学习笔记之动态内存分配结构体——辣鸡版学生管理系统

@【C语言学习笔记】

小辣鸡自学C语言中,好多视频教程都有这个案例,小辣鸡自己边学边记,下边是代码。 如有错误,感谢告知!!!

#include<stdio.h>#include<stdlib.h>struct Student * StuList;int len;int i;void InputStudent(struct Student *,int );//声明时可以不写形参名字,只写参数类型即可void OutputStudent(struct Student *,int );void sort(struct Student *,int );struct Student{char name[100];int age;float score;};int main(void){printf("请输入学生总人数\n");printf("len = ");scanf("%d",&len);printf("\n\n");StuList = (struct Student *)malloc(sizeof(struct Student)*len);//(sizeof(struct Student)*len)千万记得写*len,要不然就会引发内存越界,VS里会自动中断,VC++6.0不会中断InputStudent(StuList,len);sort(StuList,len);printf("\n\n");OutputStudent(StuList,len);system("pause");return 0;}void sort(struct Student *StuList,int len) //冒泡排序法,按成绩从高到低排序{int j;for (i=0;i<len-1;++i) //n个人比较,就比n-1次即可{for(j=0;j<len-1-i;++j){if(StuList[j].score<StuList[j+1].score){struct Student t= StuList[j+1];StuList[j+1] = StuList[j];StuList[j]= t;}}}}void InputStudent(struct Student *StuList,int len){for(i=0;i<len;++i){printf("请输入第%d个学生的信息\n",i+1);printf("姓名=");scanf("%s",StuList[i].name);//看结构体里的成员,因为存名字的本身是一个数组,name是数组名,本身指向了数组元素首地址,所以不用取地址符。printf("\n");printf("年龄=");scanf("%d",&StuList[i].age);printf("\n");printf("分数=");scanf("%f",&StuList[i].score);printf("\n\n");}}void OutputStudent(struct Student *StuList,int len){for(i=0;i<len;++i){printf("第%d个学生的信息为:\n",i+1);printf("姓名: %s\n",StuList[i].name);printf("年龄: %d\n",StuList[i].age);printf("分数: %f\n",StuList[i].score);printf("\n\n");}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。