数据结构前言练习
- 数据结构前言练习
-
- 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函数中调用这些函数实现题目要求的功能:
- int getRecs(STUDENTS s[ ]);
功能:从文件records.txt 中读数据到结构体数组s中,并返回人数n。 - 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内容及程序运行结果:
文章图片
推荐阅读
- C++编程学习指导|C++初阶(初识模板和泛型编程)
- C++|C++模板笔记一(泛型编程思想;函数模板;类型参数化;类型推导)
- 数据结构|二叉树(2)--------数据结构
- 数据结构与算法|数据结构与算法——栈、队列、堆汇总整理
- 数据结构与算法|数据结构与算法——线性表(链表篇)
- 笔记|数据结构实验报告3————栈和队列及其应用
- 数据结构与算法|数据结构笔记——栈和队列
- 数据结构与算法复习笔记——栈和队列
- 数据结构|数据结构实验三——栈和队列的基本操作