我試圖安排這個只包含數字的字符數組,它打印與我輸入它沒有任何變化的順序相同的數組,我試着在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