
这个是题目
#include<stdio.h>
#include<string.h>
int main()
{
char a[1001],xiaoxie[1001],daxie[1001],shuzi[1001];
scanf("%s",&a);
int i,j,m=0,n=0,q=0;
for (i=0;i<strlen(a);i++)
{
if (a[i]>='1' && a[i]<='9')
{
shuzi[m]=a[i];
m++;
}
if (a[i]>='a' && a[i]<='z')
{
xiaoxie[n]=a[i];
n++;
}
if (a[i]>='A' && a[i]<='Z')
{
daxie[q]=a[i];
q++;
}
}
for (i=0;i<n-1;i++)
for (j=0;j<n-i-1;j++)
{
if (xiaoxie[j]<xiaoxie[j+1])
{
char p=xiaoxie[j];
xiaoxie[j]=xiaoxie[j+1];
xiaoxie[j+1]=p;
}
}
for (i=0;i<q-1;i++)
for (j=0;j<q-i-1;j++)
{
if (daxie[j]<daxie[j+1])
{
char p=daxie[j];
daxie[j]=daxie[j+1];
daxie[j+1]=p;
}
}
for(i=0;i<m-1;i++)
for(j=0;j<m-i-1;j++)
{
if (shuzi[j]<shuzi[j+1])
{
char p=shuzi[j];
shuzi[j]=shuzi[j+1];
shuzi[j+1]=p;
}
}
printf("%s%s%s",xiaoxie,daxie,shuzi);
return 0;
}
这个是我写的代码
大致思路是先统计出字符串中大写字母、小写字母和数字的个数,再分别对它们进行从大到小的排序
输入样例运行出来的结果是正确的
但是递交评测的结果全错

求解答