#include
#include
void main()
{
char n[500];/*定义具有五百个字符的数组n,可以根据字符串的长度适当调整*/
int i,j,x,temp;
printf("输入n个字符串:");/*屏幕输出"输入n个字符串:"*/
gets(n);/*键盘敲入数组n*/
x=strlen(n);/*将n数组的字符长度赋给x*/
for(i=0;i<=x-1-1;i++)/*冒泡法排序:进行数组的ascii码排序,共需进行x-1-1组排序,
0到x-1为数组n的长度x,故只需进行x-1-1组排序*/
for(j=0;j
if(n[j]>n[j+1])/*如果这个数比下面一个数大,则这两个数互换*/
{
temp=n[j];
n[j]=n[j+1];
n[j+1]=temp;
}
}
puts(n);/*输出排序后的字符数组n*/
}
解释够详细了吧,我在vc++6.0运行了下,可以。由于我也是学c语言不久,所以可以共同学习嘛。。。。呵呵。。。
这是以5个单词排序为例的,没有用指针什么的,看不懂再问吧。
#include
#include
void main()
{
int i,j;
char word[5][99];
for(i=0;i<5;i++)
{
scanf("%s",word[i]);
}
for(i=0;i<5;i++)
{
for(j=0;j<4;j++)
{
if(strcmp(word[j],word[j+1])<0)
{
char * p;
char m[99];
p=m;
strcpy(p,word[j]);
strcpy(word[j],word[j+1]);
strcpy(word[j+1],p);
}
}
}
for(i=0;i<5;i++)printf("%s\n",word[i]);
}
理解错题意了!