题目大意:
给一个不超过1000个字符的字符串,把这个字符串的‘Z’排在最前,然后是’O’,’J’,’7’,然后顺序输出其他字符。
解题思路:
我们用4个变量分别记录Z,O,J,7的数量,然后把其他字符传到另一个数组中,然后输出就可以了。
代码如下:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char ch[1005];
int i,sz=0,so=0,sj=0,s7=0,s=0;
char re[1005];
while(scanf("%s",ch)!=EOF)
{
sz=so=sj=s7=s=0;
for(i=0;i<strlen(ch);i++)
{
if(ch[i]=='Z')
{
sz++;
}
else if(ch[i]=='O')
{
so++;
}
else if(ch[i]=='J')
{
sj++;
}
else if(ch[i]=='7')
{
s7++;
}
else
{
re[s++]=ch[i];
}
}
while(sz!=0)
{
sz--;
printf("Z");
}
while(so!=0)
{
so--;
printf("O");
}
while(sj!=0)
{
sj--;
printf("J");
}
while(s7!=0)
{
s7--;
printf("7");
}
for(i=0;i<s;i++)
printf("%c",re[i]);
printf("\n");
}
return 0;
}