0
我是這個網站的新手,並且自學瞭如何用C編程。下面的代碼編譯時沒有警告或者錯誤並且執行,但是第二次打印運行和首先,即我的氣泡排序例程不起作用。這種使用單字母字符的類似版本工作得很好。任何指針(嗯...)將不勝感激我去哪裏錯了 - 謝謝!爲什麼我的冒泡排序在C中不起作用
代碼:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char * names[10] = {"Dave","Al","Roger","Gary","Marc","Tim","Bob","Cal","Sid","Joe"};
int beginning;
int end;
int didSwap;
char * temp = "This will be used to store names temporarily";
int ctr;
puts("\nHere are some random names:");
for (ctr = 0; ctr < 10; ctr++)
{
printf("%s\n", names[ctr]);
}
for (beginning = 0; beginning < 9; beginning++)
{
didSwap = 0;
for (end = beginning; end < 10; end++)
{
if (names[end] < names[beginning])
{
temp = names[end];
names[end] = names[beginning];
names[beginning] = temp;
didSwap = 1;
}
}
if (didSwap == 0)
{
break;
}
}
puts("\nHere are the random names now in alphabetical order:");
for (ctr = 0; ctr < 10; ctr++)
{
printf("%s\n", names[ctr]);
}
return(0);
}
你做了什麼調試? – Carcigenicate
對於字符串,使用'strcmp'而不是'<'。 – BLUEPIXY
沒有,因爲沒有錯誤或警告顯示出來,否則我會陷入困境。我嘗試用許多不同的方式重寫(這會產生警告),但沒有運氣... –