#include <stdio.h>
#define N 4
struct Stu
{
char name[30];
double score;
};
void input(struct Stu* p,int len)
{
for(int i=0;i<len;i++)
{
printf("请输入第%d个学生的姓名和成绩:\n",i+1);
// scanf("%s%lf",p[i].name,&p[i].score);//变量名.成员名来访问变量中的成员,p[i].name没加&是因为name是数组类型
scanf("%s%lf",(p+i)->name,&(p+i)->score);//指针方式访问变量中的成员,这两种方式等价
}
}
void sort(struct Stu *p,int len)
{
//冒泡排序,由小到大
for(int i=0;i<len-1;i++)
for(int j=0;j<len-1;j++)
{
if(p[j].score>p[j+1].score)
{
struct Stu b=p[j];
p[j]=p[j+1];
p[j+1]=b;
}
}
}
void show(struct Stu *p,int len)
{
for(int i=0;i<len;i++)
printf("第%d个学生的姓名:%-6s,成绩:%lf\n",i+1,p[i].name,p[i].score);
}
int main()
{
// struct Stu m[]={{"张三",89.7},{"鹿晗",100},{"空哥",99}};//定义一个结构体数组m并对其初始化
// show(m,3);
struct Stu a[N];
input(a,N);
sort(a,N);
show(a,N);
return 0;
}
结构体数组和结构体指针——输入n个学生姓名和成绩并按程序排序输出
最新推荐文章于 2024-01-10 14:04:40 发布