我试图排序字符的C中的阵列冒泡排序的字符数组进行排序,但它打印出相同的数组,而不是分选的无法通过在C
char*P[5] = {"1c", "4h", "3g", "10g"};
total_items = 4; // number of elements in the array.
for(int q =1; q<total_items; q++)
{
for(int k=0; k<total_items-q; k++)
{
if((int)P[k]>=(int)P[k+1])
{
temp=P[k];
P[k]=P[k+1];
P[k+1]=temp;
}
}
}
当我打印出该阵列,它和原来的一样。我试着在if语句中打印来进行调试;原来它永远不会进入代码的交换块。有什么我失踪?
预期输出应为1C,3G,10g中,4小时。
使用替换
if((int)P[k]>=(int)P[k+1])
'strcmp'代替'> ='('>')。 – BLUEPIXY@BLUEPIXY:嗨,你能为我编辑这个吗?我尝试使用STRCMP和它打印出整个阵列以相反的顺序,不知道我要去的地方错在这里:\ –
阅读[STRCMP(http://en.cppreference.com/w/c/string/byte/ strcmp) – BLUEPIXY