<<  < 2013 - 12 >  >>
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31




#i nclude<stdio.h>
#i nclude<algorithm>
using namespace std;
struct mon
{
char *name;
int high;
}a[105];
int cmp(const mon &a,const mon &b)
{
return a.high<b.high;
}
int main()
{
int h,i,m,c,b,j,flag=0;

scanf("%d",&m);
  for(i=0;i<m;i++)
  {
scanf("%s %d",&a[i].name,&a[i].high);
  }
     scanf("%d %d",&b,&c);
sort(a,a+m,cmp);
for(j=0;j<m;j++)
if(a[j].high>b&&a[j].high<c)
{
printf("%s %d",a[j].name,a[j].high);
flag=1;
}
if(!flag)printf("no\n");
return 0;
}
c++运用了int y;
}s[100];

//按照x从小到大排序,当x相等时按照y从大到小排序

int cmp( const void *a , const void *b )
{
struct In *c = (In *)a;
struct In *d = (In *)b;
if(c->x != d->x) return c->x - d->x;
else return d->y - c->y;
}

qsort(s,100,sizeof(s[0]),cmp);

六、对字符串进行排序

struct In
{
int data;
char str[100];
}s[100];

//按照结构体中字符串str的字典顺序排序

int cmp ( const void *a , const void *b )
{
return strcmp( (*(In *)a)->str , (*(In *)b)->str );
}

qsort(s,100,sizeof(s[0]),cmp);

七、计算几何中求凸包的cmp

int cmp(const void *a,const void *b) //重点cmp函数,把除了1点外的所有点,旋转角度排序
{
struct point *c=(point *)a;
struct point *d=(point *)b;
if( calc(*c,*d,p[1]) < 0) return 1;
else if( !calc(*c,*d,p[1]) && dis(c->x,c->y,p[1].x,p[1].y) < dis(d->x,d->y,p[1].x,p[1].y)) //如果在一条直线上,则把远的放在前面
return 1;
else return -1;
}
发表评论:
天涯博客欢迎您!