
问一个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();
}
求高手指出错误,谢谢,非常感谢! 展开
这是我编的程序。
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();
}
求高手指出错误,谢谢,非常感谢! 展开
展开全部
你的函数都没写进去,怎么看?另外max==x[0];这句你搞错了吧?应该是赋值,而非测试吧?
展开全部
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
{
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询