我试图安排这个只包含数字的字符数组,它打印与我输入它没有任何变化的顺序相同的数组,我试着在if语句中使用类型转换,它给了我正确的运行结果,但没有被在线裁判接受。这里的错误是什么,为什么我的第二个解决方案不被接受?比较字符数组元素
#include <stdio.h>
#include <string.h>
int main() {
char x[101];
scanf("%s",x);
int l,i,j ;
l = strlen(x);
char temp ;
for(i=0;x[i];i++)
{
for(j=i ; x[j] ; j++){
if('x[j]'<'x[i]') //(int)x[j] and (int)x[i] didn't work on the
//online judge
{
temp=x[i];
x[i]=x[j];
x[j]=temp;
}
}
}
printf("%s",x);
return 0 ;
}
这是什么''x [j]''?这是一个多字符常量,很可能没有做你想做的事情。另外,'l = strlen(x);'和你放下'l',删除它。 –
我认为它会将字符更改为一个整数,表示该字符的ascii,如她所说的http://www.cs.swarthmore.edu/~newhall/unixhelp/C_chars.html,以便我可以比较它们。可以详细说明一下吗? –
@OmarKhaled尽你所能,但它没有任何意义。由于这些是常量字符串,在这种情况下,它几乎等同于'if(false)'。 – szczurcio