问一个C语言题,谢谢!

这是题:输入一个字符串,找出其中ASCII码值最大的字符,将其移放在第一个位置上,将该字符前的原字符向后顺序移动。例如输入字符串:ABCDeFGH,调整后的字符串为eAB... 这是题:输入一个字符串,找出其中ASCII码值最大的字符,将其移放在第一个位置上,将该字符前的原字符向后顺序移动。例如输入字符串:ABCDeFGH, 调整后的字符串为eABCDFGH。
这是我编的程序。
main()
{
char x[100],max;
int i,j;
gets(x);
max==x[0];
for(i=1;i<strlen(x);i++)
{
scanf("%c",&x[i]);
if(x[i]>max)max==x[i];
x[0]=x[i];
for(j=1;j<=i;j++)
x[j+1]=x[j];
}
puts(x);
getch();
}
求高手指出错误,谢谢,非常感谢!
展开
 我来答
tiny_98
2012-06-15 · 超过14用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:39.7万
展开全部
你的函数都没写进去,怎么看?另外max==x[0];这句你搞错了吧?应该是赋值,而非测试吧?
十步天下
2012-06-15 · TA获得超过287个赞
知道小有建树答主
回答量:214
采纳率:100%
帮助的人:252万
展开全部
main()
{
char x[100];
int max = 0;

gets(x);
for(i=1;i<strlen(x);i++) //记录最大值的位置
{
if(x[i]>x[max])
{
max = i;
}

}
printf("%c",x[max]); //首先输出最大值的字符
for(i=1;i<strlen(x);i++)
{
if(i != max) //当i不为最大值的时候才输出
printf("%c",x[i]);
}
print("\n");

getch();
}
上面的代码 没有考虑这样的情况: ABCEeABCEeeeeAB
这样输出的为 eABCEABCEAB 如果要输出eABCEABCEeeeeAB
需要在输出的时候加个判断bool ifhavemax
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式