C语言作业 高手帮忙 万分感谢。。。

来源:百度知道 编辑:UC知道 时间:2024/06/29 00:18:07
实验项目名称:学生成绩排名
实验目的:
1. 熟悉数组定义、使用、输入、输出等基本操作
2. 掌握一种排序算法
3. 掌握函数的定义、调用、声明,以及参数的传递方式
4. 熟悉指针做函数参数间接访问实参数组的操作
实验内容:
任务要求:先输入10个学生成绩,然后对前10个成绩数据排序,排序方式通过键盘输入得知。然后再输入一个学生成绩,在成绩数组的前10个数据中查找新成绩是否存在,如果存在则输出数据序号,不存在则将此数据插入到数组中,插入后数组依然有序。
将以上每一步骤的结果均打印输出,验证程序是否正确实现题目要求
1. 在main函数中定义一个数组float stu[11],用以存放学生的成绩。
2. 编写函数void input(float *p,int n),实现从键盘输入n个学生成绩,存放在p所指的实参数组中。
3. 编写函数void sort(float p[],int n, char style), 实现p所指的实参数组中前n个学生成绩排序,排序方式根据sort()函数的style参数进行。如果style为‘a’按升序排,style为’d’按降序排。
4. 编写查找函数int seek(float p[],int n,float x),在有n个数据的数组p中查找x是否存在。如x存在,则返回找到的数据序号(下标);如x不存在数组中,则将此成绩按照排序规律插入原学生成绩数组。(建议试一试折半查找)
5. 用函数void insert(float *p,int n,float x)实现向数组p中插入数据x的功能。
6. 编写函数void output(float *p,int n),输出p所指数组中的n个数据。
实验报告要求:
1. 在项目报告中画出程序流程图,说明程序设计的算法,附源程序。
2. 在项目报告中说明知识点(函数定义、函数功能、参数设置、数据传递、排序算法简介、插入算法简介等)。
3. 在项目报告中说明程序设计过程中的难点、解决办法及编程小结或体会。
评分规则:
1. 是否能正确编写C程序予以实现各题要求(50分

各个细节就不加说明了,因为你题目已经说了;本人是正在学C语言,为了帮你编这个程序用了1个小时左右,希望多多支持一下,如果发现有什么错误的地方,请留言;谢谢
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include<stdio.h>
void input(float *p,int n)
{
float a[n];
int i;
for(i=0;i<n;i++)
{
*(p+i)=&(a+i);
}
}
void output(float *p,int n)
{
int i;
float a[n+1];
*p=a[0];
for(i=0;i<n+1;i++)
return(*(p+i));
}
void sort(float *p,int n,char style)
{
int i;
float t,a[n];
*p=a[0];
for(i=0;i<n;i++)
{
if(style=='a')
{
if(*(p+i-1)>*(p+i))
{
t=*(p+i-1);
*(p+i-1)=*(p+i);
*(p+i)=t;
}
}
else if(style=='d')
{
if(*(p+i-1)<*(p+i))
{
t=*(p+i-1);
*(p+i-1)=*(p+i);
*(p+i)=t;