{
int size;
int speed;
int index;
int length;
};
node arr[1001];
bool cmp(const node &n1,const node &n2)
{
if(n1.size>n2.size)
return true;
else if(n1.speed>n2.speed)
return true;
else
return false;
}
然后在main()里面给 node arr[]数组(数组长度num)排序
sort(arr,arr+num,cmp);
总是会提示invalid operator < 然后就中断了
============================================
源程序如下:
#include
#include
using namespace std;
struct node
{
int size;
int speed;
int index;
int length;
};
node arr[1001];
bool cmp(const node &n1,const node &n2)
{
if(n1.size>n2.size)
return true;
else if(n1.speed>n2.speed)
return true;
else
return false;
}
int main()
{
int num=0;
while(scanf("%d%d",&arr[num].size,&arr[num].speed)!=EOF)
{
arr[num].index=num;
arr[num].length=1;
++num;
}
sort(arr,arr+num,cmp);
int loc=0;
for(int i=1;i
for(int j=0;j {
if(arr[i].speed
{
arr[i].length=arr[j].length+1;
if(arr[loc].length
}
}
}
printf("%d\n",arr[loc].length);
}
那就奇怪了 我用的vs2005 逻辑判断出错 程序也不能崩溃啊
而且的确是运行sort()那句出现错误的呀~