1、本题WA2次,第一次是忘记输出Case:,第二次是只注意了同样数字下是字典序,没有注意到不同数字之间也是字典序。所以这次是题目没理解好。
#include <stdio.h>
#include <stdlib.h>
int cmp_char(const void*_a,const void*_b)
{
char*a=(char*)_a;
char*b=(char*)_b;
return *a-*b;
}
char s3[220]="";
char s4[220]="";
int main(void)
{
int n,N,p;
char *s1="AUEOI";
char *s2="JSBKTCLDMVNWFXGPYHQZR";
scanf("%d",&N);
for(p=1;p<=N;p++)
{
int i,j=0,k=0,count1=0,count2=0,s=0,t=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
if(i%2==0)
{
s3[s++]=s1[j];
count1++;
}
else
{
s4[t++]=s2[k];
count2++;
}
if(count1==21)
{
count1=0;
j++;
}
if(count2==5)
{
count2=0;
k++;
}
}
qsort(s3,s,sizeof(char),cmp_char);
qsort(s4,t,sizeof(char),cmp_char);
printf("Case %d: ",p);
for(i=0;i<n;i++)
{
if(s3[i])
printf("%c",s3[i]);
if(s4[i])
printf("%c",s4[i]);
}
printf("\n");
memset(s3,'\0',sizeof(s3));
memset(s4,'\0',sizeof(s4));
}
return 0;
}