C语言编程 结构体 请在源程序中修改,请注释。

1.从文件获取学生身高表;2.按身高升序排序后在屏幕上打印身高表。1.intgetRecs(STUDENTSs[])功能:从文件records.txt中读数据到结构体数组... 1.从文件获取学生身高表;2.按身高升序排序后在屏幕上打印身高表。
1. int getRecs (STUDENTS s[ ])
功能:从文件records.txt 中读数据到结构体数组s中,并返回人数n。
2. void sort (STUDENTS s[ ], int n)
功能:对结构体数组s按身高从低到高排序。
#include <stdio.h>
#include <stdlib.h>

#define MAXLENTH 100

typedef struct
{
int ID;
float height;
} STUDENTS;

int getRecs (STUDENTS s[ ]);
void sort (STUDENTS s[ ], int n);
void display(STUDENTS data[], int *num);
/*1.从文件获取学生身高表;2.按身高升序排序后在屏幕上打印身高表。
1. int getRecs (STUDENTS s[ ])
功能:从文件records.txt 中读数据到结构体数组s中,并返回人数n。
2. void sort (STUDENTS s[ ], int n)
功能:对结构体数组s按身高从低到高排序。
*/

int main()
{
int n;
int *num;
*num = n;
STUDENTS data[MAXLENTH];
n = getRecs(data);
sort (data, n);
display(data, &num);

return 0;
}

int getRecs (STUDENTS s[ ])
{
int n=0;
FILE *fp;
fp=fopen("records.txt","r");
if(!fp)
{
printf("can't open file\n");
}
while(!feof(fp))
{
fscanf(fp,"%d %d",&s[n].height,&s[n].ID);
n++;
}
fclose(fp);
return n;
}

void sort (STUDENTS s[ ], int n)
{
int i, j;
STUDENTS temp;
for (j = 0; j < n - 1; j++)
for (i = 0; i < n - 1 - j; i++)
{
if(s[i].height > s[i + 1].height)
{
temp = s[i];
s[i] = s[i + 1];
s[i + 1] = temp;
}
}
}
void display(STUDENTS data[],int *num)
{
int i=0;
int count;
count = #
if( !(data[i].height || data[i].ID) )
printf("\n顺序表是空的!");
else
for(i=0;i<count;i++)
{
printf("%5d %5d \n",data[i].height,data[i].ID);
}
}
records.txt的内容为
1 180
2 177
3 190
4 167
5 188
6 175
7 182
8 173
9 162
10 178
11 180
12 167
展开
 我来答
xoaxa
2017-02-27 · TA获得超过8610个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3483万
展开全部

#include <stdio.h>
#include <stdlib.h> // for exit()

#define MAXLENTH 100

typedef struct {
int ID;
float height;
}STUDENT;

int getRecs (STUDENT s[]);
void sort (STUDENT s[], int n);
void display(STUDENT data[], int n);
/*1.从文件获取学生身高表;2.按身高升序排序后在屏幕上打印身高表。
1. int getRecs (STUDENTS s[ ])
功能:从文件records.txt 中读数据到结构体数组s中,并返回人数n。
2. void sort (STUDENTS s[ ], int n)
功能:对结构体数组s按身高从低到高排序。
*/

int main() {
STUDENT data[MAXLENTH];
int n = getRecs(data);
sort (data,n);
display(data,n);
return 0;
}

int getRecs(STUDENT s[]) {
int n = 0;
FILE *fp = fopen("records.txt","rt");
if(!fp) {
printf("can't open file\n");
exit(1);
}
while(!feof(fp)) {
fscanf(fp,"%d%f",&s[n].ID,&s[n].height);
n++;
}
fclose(fp);
return n;
}

void sort(STUDENT s[], int n) {
int i,j,k;
STUDENT temp;
for(i = 0;i < n - 1; ++i) {
k = i;
for(j = i + 1; j < n; ++j)
if(s[k].height > s[j].height) k = j;
if(k != i) {
temp = s[i];
s[i] = s[k];
s[k] = temp;
}

}
}
void display(STUDENT data[],int n) {
int i;
if(n == 0) printf("\n顺序表是空的!");
else {
for(i = 0;i < n;++i)
printf("%5d %.2f \n",data[i].ID,data[i].height);
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式