三九宝宝网宝宝教育教学论文

C语言qsort对结构数组排序的定义

02月23日 编辑 39baobao.com

[用C语言完成对数组进行排序]好吧,我写个对数组进行冒泡排序的例子: int[] s = { 200, 7, 2, 79, 86 }; for (int i = 0; i < s.Length - 1; i++) { for (int j = 0; j < s.Length - i - 1; j++) { if (s[...+阅读

■可能的一个原因是compare 里给a、b赋值的时候,后面强制类型转换应为(struct record *)而非(record *)。

■可能另一个原因是你的源文件名后缀(DECVPP据此判断是C程序还是C++程序),如果是纯C的,就用.c;如果是C++的,用.cpp。

■还有可能是你没有包含必要的头文件?

我根据你的代码做了个简单的测试,在VC6下运行正常(由大到小按point排)。

#include

#include

struct record

{

char name[35];

int point;

int match[3];

int goal[2];

} ;

int compare(const void *p1,const void *p2);

void input(struct record s[], int n);

void output(struct record s[], int n);

int main()

{

struct record team[35];

int teams = 35;

input(team, 5);

qsort(team,teams,sizeof(team[0]),compare);

output(team, 5);

return 0;

}

int compare(const void *p1,const void *p2)

{

struct record *a= (struct record *)p1;

struct record *b= (struct record *)p2;

int result=0;

if(a->point >b->point)

return -1;

else if(a->pointpoint)

return 1;

else

return 0;

}

void output(struct record s[], int n)

{

int i=0;

while(i{

printf("%d ",s[i].point);

i++;

}

return;

}

void input(struct record s[], int n)

{

int i=0;

while(i{

scanf("%d",&(s[i].point));

i++;

}

return;

}

以下为关联文档:

C语言:用递归的方式对数组排序#include <stdio.h> #define N 8 void selection_sort(int a[], int n) { daoint i, t, imax = 0; if(n < 1) return; for(i = 1; i < n; ++i) { 回if(a[imax] < a[i]) imax...

C语言中怎么对数组随机排序#include<stdio.h> #include<time.h> #include<stdlib.h> #define SIZE 1000 main() { int ary[SIZE],i=0,j,k; time_t t; srand((unsigned)time(&t));//随机数的产生与系统时...

C语言数组排序#include<stdio.h> void main() { int a[10] = { 10,2,3,4,5,6,9,8,7,1 }; int i,j,t; for(j=0;j<10;j++) for(i=0;i<10-1-j;i++) if(a[i]>a[i+1]) /* 由小到大,由大到小时改...

C语言。数组排序函数数组函数排序//#include "stdafx.h"//vc++6.0加上这一行. #include "stdio.h" void Sort(int *p,int n){ int i,j,k; for(i=0;i<10;i++){ for(k=i,j=i+1;j<10;j++) if(p[k]>p[j]) k=j; if(k!...

c语言快速排序qsort函数你这个是c程序还是c++ c++的话类型要求比较严格 比较函数接受的参数类型应该是const void* c的话你main里函数原型的声明也不对啊,这样改一下 #include<stdlib.h> #include<s...

C语言qsort函数对char型strmn数组排序// 这样写就OK啦。 int cmp(const void *a, const void *b) { char *aa = (char *) a; char *bb = (char *) b; return strcmp(aa,bb); } // const void *a是表示一个指向co...

c语言如何用qsort排序试想一下,如果让你自己设计qsort函数,需要些什么东西,首地址要有吧,总共有几个元素要有吧,每个元素占多大的内存要有吧(想想就知道函数内部要根据内存块的大小交换数据实现排序),最...

C语言结构体数组的定义1、C语言结构体数组的定义:数组是有序的并且具有相同类型的数据的集合。 2、结构数组就是具有相同结构类型的变量集合。假如要用C语言,定义一个班级40个同学的姓名、性别、年...

C语言数据结构:定义一个数组随机赋值递归打印#include #define DATA_LENGTH 100 void Print(int *data, int pos) { if((DATA_LENGTH-1) != pos) { Print(data, pos+1); } printf("%d ", data[pos]); } int main() { int...

推荐阅读
图文推荐