# include & ltiostream & gt
# include & lt算法& gt
使用?命名空間?std
int?c;
struct?A
{
int?n;
int?g;
夏爾?名稱[10];
}?a[110];
布爾?cmp(A?s,A?t)
{
如果(c==2)
{
如果(!strcmp(s.name,t.name))
回歸?s.n & ltt.n
不然呢?
回歸?strcmp(s.name,t . name)& lt;0;
}?
不然呢?如果(c==3)
{
如果(s.g==t.g)
回歸?s.n & ltt.n
其他
回歸?s.g & ltt.g//返回
}
不然呢?
回歸?s.n & ltt.n
}
int?主()
{
int?x=0,n,I;?//c?-& gt;?全球的
while(scanf("%d?%d ",& ampn & amp;c)!EOF & amp& ampn!=0)
{
for(I = 0;我& ltn;i++)
scanf("%d?%s?%d ",& amp甲[我]。n,a[i]。姓名& amp甲[我]。g);
printf("Case?%d:\n ",++ x);
sort(a,a+n,CMP);
for(I = 0;我& ltn;i++)
printf("%06d?%s?%d\n ",a[i]。n,a[i]。名字,壹個[我]。g);
}
回歸?0;
}錯誤1: C定義全局並全局使用。不要在本地定義,會被覆蓋;
錯誤2: CMP函數缺少返回值;在3;
優化建議:cmp函數使用地址轉移,節省空間,提高效率。