#include<stdio.h> #include<string.h> int main( ) { int i; char s[101],max1,max2,max,l[5]={'(','m','

杭电ACM2025题,我的怎么过不了
#include<stdio.h>
#include<string.h>
int main( )
{
int i;
char s[101],max,l[6]={'(','m','a','x',')','\0'};
while((scanf("%s",s))==1)
{
max=s[0];
for(i=1;i<strlen(s);i++)
{
if(s[i]>max)
{
max=s[i];
}
}
for(i=0;i<strlen(s);i++)
{
if(s[i]==max)
{
printf("%c%s",s[i],l);
}
else
{
printf("%c",s[i]);
}
}
printf("\n");
}
return 0;
}
我已经改了,ok!

这句:
printf("%c%s",s[i],l);
l缺少字符串结尾符'\0'。
另外,您的if (max1>=max2)这个判断没什么意义,在ASCII码里任何小写字母都大于任何大写字母,所以if (max1>=max2)恒成立。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-20
while(gets(s))
这个ok吗?
第2个回答  2011-01-20
1
相似回答