首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

新手!一段简单C语言程序!关于sort排序

2012-03-28 
新手求助!一段简单C语言程序!关于sort排序!#includestdio.h#includealgorithm#includestringusing n

新手求助!一段简单C语言程序!关于sort排序!
#include<stdio.h>
#include<algorithm>
#include<string>
using namespace std;
struct node
{
string name[11];
double aver;

};
int cmp(node x,node y)
{
if(x.aver==y.aver)
return x.name>y.name;
else
return x.aver>y.aver;
}
int main()
{
int k,i,j,h,n1,n2;
double sum,m,a[100];
node s[100];
while(scanf("%d",&k)!=EOF)
{
for(h=1;h<=k;h++)
{
scanf("%d",&n1);
for(i=0;i<n1;i++)
scanf("%lf",&a[i]);
scanf("%d",&n2);
for(i=0;i<n2;i++)
{
sum=0;
scanf("%s",&s[i].name);
for(j=0;j<n1;j++)
{
scanf("%lf",&m);
if(m>=60)
sum=sum+a[j]*(m-50)/10;
}
s[i].aver=sum;
}
printf("class %d:\n",h);
sort(s,s+n2,cmp);//问题在这!为什么不能排序!
for(i=0;i<n2;i++)
{
printf("%s %.2lf\n",s[i].name,s[i].aver);
}
printf("\n");
}
}
return 0;
}


[解决办法]
sort 是 C++ 泛型 算法库里的
qsort 是 C 标准库里

sort 效率一般被 qsort 高,使用也简单,支持的对象类型也多
C 只能用 qsort 或者 自己实现 sort

热点排行