结构体
来源:互联网 发布:大数据的4v特征 编辑:程序博客网 时间:2024/05/18 12:36
对于给定的结构体存放学生的信息,已知一组数据:{"GA005",85},{"GA003",76}, {"GA002",69},{"GA004",85},{"GA001",91},{"GA007",72},{"GA008",64},{"GA006",87},{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},{"GA011",66},{"GA017",64},{"GA018",64},{"GA016",72}
我想把学生的信息按照成绩升序排列,该怎么办?你可能会说这不就是简单的排序吗?我可以用好多种方法搞定它,是的,但是当满足排序条件的时候,交换的不仅仅是成绩,而是整个结构体的数据类型。
#include <stdio.h>
#define N 16
typedef struct
{char num[10];
int s;
} STREC;
void fun(STREC a[])
{
int i,j;
STREC t;
for(i=0;i<N-1;i++)
for(j=0;j<N-i-1;j++)
{
if(a[j].s<a[j+1].s)
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
/*void fun(STREC a[])
{
STREC tmp;
int i,j;
for(i=0; i<N; i++)
for(j=i+1; j<N; j++)
if(a[i].s<a[j].s){
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}*/
main()
{STREC s[N]={{"GA005",85},{"GA003",76}, {"GA002",69},{"GA004",85},{"GA001",91},{"GA007",72},{"GA008",64},{"GA006",87},{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},{"GA011",66},{"GA017",64},{"GA018",64},{"GA016",72}};
int i;FILE *out ;
fun(s);
printf("The data after sorted :\n");
for(i=0;i<N; i++)
{if((i)%4==0)printf("\n");
printf("%s %4d ",s[i].num,s[i].s);
}
printf("\n");
out = fopen("out.dat","w");
for(i=0;i<N; i++)
{if((i)%4==0 && i) fprintf(out, "\n");
fprintf(out, "%4d ",s[i].s);
}
fprintf(out,"\n");
fclose(out);
}
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体,,,,
- 结构体
- 结构体
- 栈的压入、弹出序列
- [C++] 基础知识之3、C++中的运算符
- 【LeetCode】 275. H-Index II
- 字符串的排列(字典序)
- 连号区间数(蓝桥杯)
- 结构体
- 51NOD1246 罐子和硬币
- HTML图片占位符
- leetcode 448 Find All Numbers Disappeared in an Array
- Android 笔记 - 从图像中扣一个洞出来 ……
- Spring属性配置细节
- 【Android】初学android开发——前言
- leetcode 136 Single Number
- ORA-01102: cannot mount database in EXCLUSIVE mode 处理方法