C语言:将结构体数组的成绩按照从小到大进行排序。
2015-08-03 16:14
465 查看
#include<stdio.h>
typedef struct student
{
char *name;
int sno;
int age;
float score;
}Student;
void sortScore(Student st[],int len)
{
int flag = 0;
for(int i=0;i<len-1;i++)
{
flag = 1;
for(int j=0;j<len-1-i;j++)
{
if(st[j].score>st[j+1].score)
{
Student temp = st[j];
st[j] = st[j+1];
st[j+1] = temp;
}
}
if(flag==0)
{
break;
}
}
}
void printStudent(Student stu[],int len)
{
for(int i=0;i<len;i++)
{
printf("name:%s,sno:%d,age:%d,score:%.1f\n",stu[i].name,stu[i].sno,
stu[i].age,stu[i].score);
}
}
int main()
{
Student stu[3] = {{"Tom",1101,18,99.2},
{"Boy",1102,20,98.1},
{"Smith",1103,22,99.0}};
sortScore(stu,3);
printStudent(stu,3);
return 0;
}
typedef struct student
{
char *name;
int sno;
int age;
float score;
}Student;
void sortScore(Student st[],int len)
{
int flag = 0;
for(int i=0;i<len-1;i++)
{
flag = 1;
for(int j=0;j<len-1-i;j++)
{
if(st[j].score>st[j+1].score)
{
Student temp = st[j];
st[j] = st[j+1];
st[j+1] = temp;
}
}
if(flag==0)
{
break;
}
}
}
void printStudent(Student stu[],int len)
{
for(int i=0;i<len;i++)
{
printf("name:%s,sno:%d,age:%d,score:%.1f\n",stu[i].name,stu[i].sno,
stu[i].age,stu[i].score);
}
}
int main()
{
Student stu[3] = {{"Tom",1101,18,99.2},
{"Boy",1102,20,98.1},
{"Smith",1103,22,99.0}};
sortScore(stu,3);
printStudent(stu,3);
return 0;
}
相关文章推荐
- log4cpp深度封装
- 如何统计在一篇文章中某个单词出现了几次,以及第一次出现的位置
- C语言结构体中加typedef的区别(文章转移)
- 刚开始学:C语言 SelecttionSort选择排序算法
- C语言 实现链栈
- C++下基本类型所占位数和取值范围
- C++下基本类型所占位数和取值范围
- C++学习笔记——运算符重载
- C++文本查询程序实例
- 06-2. 字符串字母大小写转换(10)
- C++对象的动态建立与释放详解
- C语言中一个小问题
- C语言深度解剖——读书笔记-10、指针和数组
- hnuoj 字典树 map c++
- (转)c++迭代器
- C++ const关键字的总结
- c++ 覆盖、重载、隐藏
- C++中拷贝构造函数
- C语言:堆结构串(动态分配内存)
- C++构造函数和拷贝构造函数详解