我目前正在研究C教科书中有关指针数组/字符串解引用的一章。它提供了对字符串进行冒泡排序的示例。而且,每次我运行它时,它都不以字母升序输出字符串,包括字符串的每个字符。我一直在重读代码以找出错误的位置,但找不到它。这是教科书提供的输出信息:
#include <stdio.h>
#define SIZE 8
int main()
{
const char *name[] =
{
"Mickey",
"Minnie",
"Donald",
"Daisy",
"Goofy",
"Chip",
"Dale",
"Pluto"
};
const char *temp;
int x,a,b;
for(a=0; a<SIZE-1; ++a)
{
for(b=a+1; b<SIZE; ++b)
{
x=0;
while(*(*(name+a)+x))
{
if(*(*(name+a)+x) > *(*(name+b)+x))
{
temp = *(name+a);
*(name+a) = *(name+b);
*(name+b) = temp;
break;
}
else if(*(*(name+a)+x) < *(*(name+b)+x))
{
break;
}
else
{
x++;
}
}
}
for(x=0; x<SIZE; ++x)
{
printf("%s\n",*(name+x));
}
return(0);
}
}
输出:
Chip
Minnie
Mickey
Donald
Goofy
Daisy
Dale
Pluto