排名函数c语言 排名函数是什么函数

如何用c语言设计一个成绩排名系统

#includestdio.h

创新互联建站主营长岛网站建设的网络公司,主营网站建设方案,APP应用开发,长岛h5重庆小程序开发公司搭建,长岛网站营销推广欢迎长岛等地区企业咨询

#includestdlib.h

#includeconio.h

#includestring.h

struct student{

int id;

char name[10];

int age;

char sex[10];

char birthady[20];

int tel;

char nativeplace[50];

}st[50];

int i=0;

void shuru() {

char a;

do{

printf("\n请输入学号:");

scanf("%d",st[i].id);

fflush(stdin);

printf("\n请输入姓名:");

gets(st[i].name);

printf("\n") ;

printf("请输入年龄:");

scanf("%d",st[i].age);

fflush(stdin);

printf("\n请输入姓别:");

gets(st[i].sex);

fflush(stdin);

printf("\n请输入生日:");

gets(st[i].birthady);

printf("\n请输入电话:");

scanf("%d",st[i].tel);

fflush(stdin);

printf("\n请输入籍贯:");

gets(st[i].nativeplace);

printf("\n是否继续输入另外一个学生信息?(y/n)");

fflush(stdin);

a=getchar();

i++;

}while(a=='y' i=50);

}

void xianshi()

{

int j;

printf("\t学号\t姓名\t年龄\t性别\t生日\t\t电话\t籍贯\n");

for(j=0;ji;j++)

printf("\t%d\t%s\t%d\t%s\t%s\t%d\t%s\n",

st[j].id,st[j].name,st[j].age,st[j].sex,st[j].birthady,st[j].tel,st[j].nativeplace);

}

void paixu() //按年龄从大到小排序函数

{

int j,k;

int temp;

for(j=0;ji;j++)

{

for(k=0;ki-1-j;k++)

{

if(st[k].agest[k+1].age)

{

temp=st[k].age;

st[k].age=st[k+1].age;

st[k+1].age=temp;

}

}

}

xianshi(); //排序后输出

}

void chazhao()

{

int m;

char name[20],b;

do

{

printf("\n请输入想查找的学生姓名:");

fflush(stdin);

gets(name);

for(m=0;mi;m++)

{

if(strcmp(name,st[m].name)==0)

{

printf("\n\t您查找的学生在第%d个位置找到了!!!\n",m+1);

break;

}

}

if(m=20)

printf("\n\t没有找到这个学生!!!\n");

else

{

printf("\t学号\t姓名\t年龄\t性别\t生日\t\t电话\t籍贯\n");

printf("\t%d\t%s\t%d\t%s\t%s\t%d\t%s\n",

st[m].id,st[m].name,st[m].age,st[m].sex,st[m].birthady,st[m].tel,st[m].nativeplace);

}

printf("\n是否查找另一个学生的信息?(y/n)");

fflush(stdin);

b=getchar();

}while(b=='y');

}

void shanchu()

{

char name[20],c;

int a,b;

do

{

printf("\n请输入要删除的学生姓名:\n");

fflush(stdin);

gets(name);

for(a=0;ai;a++)

{

if(strcmp(name,st[a].name)==0)

break;

}

for(b=a;bi;b++)

st[b]=st[b+1];

if(ai)

printf("\t没有找到这个学生!!!\n");

else

{

i--;

xianshi();

}

printf("\n是否继续删除另一个学生信息?(y/n) ");

fflush(stdin);

c=getchar();

}while(c=='y');

}

void charu()

{

shuru();

paixu();

}

void main() //主函数

{

int change;

do{

system("cls");

printf("============================学生信息管理系统===================================\n");

printf("\t\t一: 输入学生信息\n");

printf("\t\t二: 显示学生信息\n");

printf("\t\t三: 查找学生信息\n");

printf("\t\t四: 删除学生信息\n");

printf("\t\t五: 插入学生信息\n");

printf("\t\t六: 退出程序\n");

fflush(stdin);

printf("\t\t请输入功能选项:");

scanf("%d",change);

switch(change)

{

case 1:

shuru(); break;

case 2:

xianshi(); break;

case 3:

chazhao(); break;

case 4:

shanchu(); break;

case 5:

charu(); break;

case 6:

break;

}

getch();

}while(change!=6);

}

C语言中的排序函数是什么

include cstdlib 或 #include stdlib.h

qsort(void* base, size_t num, size_t width, int(*)compare(const void* elem1, const void* elem2))

参数表

*base: 待排序的元素(数组,下标0起)。

num: 元素的数量。

width: 每个元素的内存空间大小(以字节为单位)。可用sizeof()测得。

int(*)compare: 指向一个比较函数。*elem1 *elem2: 指向待比较的数据。

比较函数的返回值

返回值是int类型,确定elem1与elem2的相对位置。

elem1在elem2右侧返回正数,elem1在elem2左侧返回负数。

控制返回值可以确定升序/降序。

产生随机数的函数也是rand(),不是rank().

C语言成绩排名次。

此题有最大人数限制,所以可用数组实现。创建一个结构体类型,成员包括学号、题设各科成绩、总分和平均分。在主函数中声明一个30个此结构体元素的数组,然后输入数据,再进制排序、输出和查找。参考代码如下:

#include stdio.h

typedef struct stu{//创建结构类型

int MT,EN,PH,TO,ID;

double AV;

}STU;

int main(void){

STU s[30],t;

int i,j,k,n;

printf("Please enter the student's scores(0 end):\n");

printf("\n STUID MA  EN  PH\n------------------\n");

n=0,j=10000;

while(1){//输入数据

printf(" %d ",s[n].ID=j++);

if(scanf("%d",s[n].MT),s[n].MT0)

break;

scanf("%d%d",s[n].EN,s[n].PH);

s[n].TO=s[n].EN+s[n].MT+s[n].PH;

s[n++].AV=s[n].TO/3.0;

}

printf("\n STUID MATH ENGL PHYS TOTA AVER\n");

printf("---------------------------------\n");

for(i=0;in;i++){//排序

for(k=i,j=k+1;jn;j++)

if(s[k].TOs[j].TO)

k=j;

if(k-i)

t=s[k],s[k]=s[i],s[i]=t;

printf("%6d%4d%5d%5d%5d%7.2f\n",s[i].ID,s[i].MT,s[i].EN,s[i].PH,s[i].TO,s[i].AV);//输出表格

}

printf("Please enter ID(%d~%d)...\n",10000,9999+n);//查询

scanf("%d",k);

for(i=0;in;i++)

if(s[i].ID==k){

printf("\n STUID MATH ENGL PHYS TOTA AVER\n");

printf("---------------------------------\n");

printf("%6d%4d%5d%5d%5d%7.2f\n",s[i].ID,s[i].MT,s[i].EN,s[i].PH,s[i].TO,s[i].AV);

break;

}

if(i=n)

printf("No %d...\n",k);

return 0;

}

c语言中rank函数怎么用

c语言中rank函数是自定义的函数吧?如果是的话,怎么用,还必须看这个函数是怎么定义的了。

c语言怎么用自定义函数排序

#include stdio.h

#include string.h#define NUM 3

struct student

{

char name[20]; /*姓名*/

long num; /*12位学号*/

double sum; /*总分*/

};

void Create_Students(struct student stu[NUM])

{

struct student *p;

printf("请输入学生姓名 学号(12位) 总分:\n");

for( p = stu; p stu+NUM; p++)

{

scanf("%s %d %lf",p-name,p-num,p-sum); }

}

void Order_Students(struct student stu[NUM])//起泡法

{

int i,j;

struct student temp;

for(i=NUM-1;i=0;i--)

for(j=0;ji;j++)

if(stu[j].sumstu[j+1].sum)

{

temp = stu[j];

stu[j] = stu[j+1];

stu[j+1]=temp;

}

}

void main()

{

int i=1;

struct student *p;

struct student stu[NUM];

Create_Students(stu);

Order_Students(stu);

printf("%-20s %-13s %-6s %4s\n","姓名","学号(12位)","总成绩","名次");

for(p=stu;pstu+NUM;p++,i++)

{

printf("%-20s %-13.0d %-8.2f %2d\n",p-name,p-num,p-sum,i);

}

}//你参考参考,嘿

C语言sort函数如何使用

C语言中没有预置的sort函数。如果在C语言中,遇到有调用sort函数,就是自定义的一个函数,功能一般用于排序。

一、可以编写自己的sort函数。

如下函数为将整型数组从小到大排序。

void sort(int *a, int l)//a为数组地址,l为数组长度。

{

int i, j;

int v;

//排序主体

for(i = 0; i  l - 1; i ++)

for(j = i+1; j  l; j ++)

{

if(a[i]  a[j])//如前面的比后面的大,则交换。

{

v = a[i];

a[i] = a[j];

a[j] = v;

}

}}

对于这样的自定义sort函数,可以按照定义的规范来调用。

二、C语言有自有的qsort函数。

功 能: 使用快速排序例程进行排序

头文件:stdlib.h

原型: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));

参数:

1 待排序数组首地址

2 数组中待排序元素数量

3 各元素的占用空间大小

4 指向函数的指针,用于确定排序的顺序

这个函数必须要自己写比较函数,即使要排序的元素是int,float一类的C语言基础类型。

以下是qsort的一个例子:

#includestdio.h

#includestdlib.h

int comp(const void*a,const void*b)//用来做比较的函数。

{

return *(int*)a-*(int*)b;

}

int main()

{

int a[10] = {2,4,1,5,5,3,7,4,1,5};//乱序的数组。

int i;

qsort(a,n,sizeof(int),comp);//调用qsort排序

for(i=0;i10;i++)//输出排序后的数组

{

printf("%d\t",array[i]);

}

return 0;

}

扩展资料:

sort函数的用法(C++排序库函数的调用)

对数组进行排序,在c++中有库函数帮我们实现,这们就不需要我们自己来编程进行排序了。

(一)为什么要用c++标准库里的排序函数

Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题!因为它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n),执行效率较高!

(二)c++标准库里的排序函数的使用方法

I)Sort函数包含在头文件为#includealgorithm的c++标准库中,调用标准库里的排序方法可以不必知道其内部是如何实现的,只要出现我们想要的结果即可!

II)Sort函数有三个参数:

(1)第一个是要排序的数组的起始地址。

(2)第二个是结束的地址(最后一位要排序的地址的下一地址)

(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。

Sort函数使用模板:

Sort(start,end,排序方法)

下面就具体使用sort()函数结合对数组里的十个数进行排序做一个说明!

例一:sort函数没有第三个参数,实现的是从小到大

#includeiostream

#includealgorithm

using namespace std;

int main()

{

int a[10]={9,6,3,8,5,2,7,4,1,0};

for(int i=0;i10;i++)

couta[i]endl;

sort(a,a+11);

for(int i=0;i10;i++)

couta[i]endl;

return 0;

}

编译器

GCC,GNU组织开发的开源免费的编译器

MinGW,Windows操作系统下的GCC

Clang,开源的BSD协议的基于LLVM的编译器

Visual C++ :: cl.exe,Microsoft VC++自带的编译器

集成开发环境

CodeBlocks,开源免费的C/C++ IDE

CodeLite,开源、跨平台的C/C++集成开发环境

Orwell Dev-C++,可移植的C/C++IDE

C-Free

Light Table

Visual Studio系列

Hello World

参考资料:百度百科-sort函数


本文题目:排名函数c语言 排名函数是什么函数
本文链接:http://azwzsj.com/article/hpsois.html