成语大全网 - 汉语词典 - c语言英语单词按词典顺序排序时结果出错,是哪里写错了?

c语言英语单词按词典顺序排序时结果出错,是哪里写错了?

#include?<stdio.h>

#include?<stdlib.h>

#include?<string.h>

int?main()?//主函数?

{

int?i,j,m,k;

char*?a[40];

char?temp[10]={"abcdefghi"};

srand(time(NULL));

for(j=0;j<40;j++)

{

a[j]=(char*)malloc(sizeof(char)*10);

m=4+rand()%(10-4);

for(i=0;i<m;i++)

{

temp[i]='a'+rand()%26;

}

temp[i]='\0';

strcpy(a[j],temp);

printf("%s\n",a[j]);

}

for(i=0;i<39;i++)

{

for(j=i;j<40;j++)

{

if(strcmp(a[i],a[j])>0)

{

strcpy(temp,a[i]);

strcpy(a[i],a[j]);

strcpy(a[j],temp);

}

}

}

printf("这40个单词按照字典排序输出为:\n");

for(i=0;i<40;i++)

{

printf("%s\n",a[i]);

}

}