[用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...