指针数组题
非常感谢,前次,关于时钟题诸位的回复.特别是版主的回复改得非常巧,就通了.
这是一道指针数组题,对输入的人的名字排序.但我找不到原因,为何排得不对,排出来不是英语字母顺序.
#include"stdio.h"
#define STUNUM 10
main()
{
char name[STUNUM][20];
char str[80];
char *ps[STUNUM],*pt;
int i,j,k,num;
num=0;
for(i=0;i<STUNUM;i++)
{
printf("input the name of the %dth student",i+1);
gets(str);
if(str[0]=='\0')
break;
if(strlen(str)>19)
{
i--;
continue;
}
strcpy(name[i],str);
num++;
}
for(i=0;i<num;i++)
ps[i]=name[i];
for(j=0;j<num-1;j++)
{
k=j;
for(i=j+1;i<num;i++)
if(strcmp(ps[i],ps[k]<0))
k=i;
if(k!=j)
{
pt=ps[k];
ps[k]=ps[j];
ps[j]=pt;
}
}
printf("\nthe result:\n");
for(i=0;i<num;i++)
printf("%dth:%s\n",i+1,ps[i]);
}