数据结构实验报告|数据结构前言练习


数据结构前言练习

  • 数据结构前言练习
    • C语言知识回顾
      • 任务一:平均值和最近元素下标
      • 任务二:结构体数组排序

数据结构前言练习 C语言知识回顾 任务一:平均值和最近元素下标
题目要求:
输入n个整数,输出其中与平均值最接近的元素的值及下标。
要求定义下面功能函数,并在main函数中调用这些函数实现题目要求的功能:
1.double getAvg(int a[], int n)
功能:求数组a中n个数的平均值。
2.int getIndex(int a[], int n, double x)
功能:获取与x的值最接近的数组元素的下标。
代码:
#include #include #include double getAvg(int a[],int n){ double sum = 0; for(int i=0; i

程序运行时的输入输出结果:
数据结构实验报告|数据结构前言练习
文章图片

任务二:结构体数组排序
1.题目要求
若有一文本文件records.txt中已存储学生身高表,每个学生信息包括学号和身高两个数据项,编程要求从文件获取学生身高表后,按身高从低到高的顺序排序后在屏幕上打印学生身高表。
要求定义下面功能函数,并在main函数中调用这些函数实现题目要求的功能:
  1. int getRecs(STUDENTS s[ ]);
    功能:从文件records.txt 中读数据到结构体数组s中,并返回人数n。
  2. void sort(STUDENTS s[ ], int n);
    功能:对结构体数组s按身高从低到高排序。
    2.学生信息类型定义及说明
    typedef struct {
    int xh; /* 学号 /
    float sg; /
    身高 */
    } STUDENTS;
【数据结构实验报告|数据结构前言练习】代码:
#include #include typedef struct STUDENTS{ int xh; /*学号*/ float sg; /*身高*/ }STUDENTS; int getRecs(STUDENTS s[]){ int i=0; FILE *fp=fopen("D:\\hello\\records.txt","r"); if(fp==NULL) { printf("访问不到!"); return 0; } while(!feof(fp)) { fscanf(fp,"%d%f",&s[i].xh,&s[i].sg); i++; } return i; } void sort(STUDENTS s[ ], int n){ STUDENTS tmp; float tmp_1,tmp_2; for(int i=0; is[j].sg){ tmp = s[i]; s[i] = s[j]; s[j] = tmp; } } } } int main() { STUDENTS s[10]; int num = getRecs(s); printf("总共有%d人\n",num); for(int i = 0; i

原始数据文件records.txt内容及程序运行结果:
数据结构实验报告|数据结构前言练习
文章图片

    推荐阅读