C语言程序设计(第5版)第11章 指针和数组.ppt
voidSortString(char*ptr[],intn){ inti,j; char*temp=NULL; for(i=0;in-1;i++) { for(j=i+1;jn;j++) { if(strcmp(ptr[j],ptr[i])0) { temp=ptr[i];ptr[i]=ptr[j];ptr[j]=temp; } } }}按字典顺序对国名排序字符指针数组有什么用?交换指针数组中的字符串指针0123ptrFinland\0America\0England\0Australia\0China\040123ptrFinland\0America\0England\0Australia\0China\04#includestdio.h#includestring.h#defineM150//最多的字符串个数voidSortString(char*ptr[],intn);intmain(){ inti,n; char*pStr[M]; printf(Howmanycountries?); scanf(%d,n); getchar();//读走输入缓冲区中的回车符 printf(Inputtheirnames:\n); for(i=0;in;i++) { gets(pStr[i]); } SortString(pStr,n); printf(Sortedresults:\n); for(i=0;in;i++) { puts(pStr[i]); } return0;}例11.4——讨论下面主函数调用函数SortString()按奥运会参赛国国名在字典中的顺序对其入场次序进行排序,请问程序错在哪里?错在哪里?下面主函数调用函数SortString()按奥运会参赛国国名在字典中的顺序对其入场次序进行排序,请问程序错在哪里?讨论#includestdio.h#includestring.h#defineM150//最多的字符串个数voidSortString(char*ptr[],intn);intmain(){ inti,n; char*pStr[M]; printf(Howmanycountries?); scanf(%d,n); getchar();//读走输入缓冲区中的回车符 printf(Inputtheirnames:\n); for(i=0;in;i++) { gets(pStr[i]);//指针数组元素未初始化 } SortString(pStr,n); printf(Sortedresults:\n); for(i=0;in;i++) { puts(pStr[i]); } return0;}#includestdio.h#includestring.h#defineM150//最多的字符串个数#defineN10//每个字符串的最大长度voidSortString(charstr[][N],intn);intmain(){ inti,n; charname[M][N];char*pStr[M]; printf(Howmanycountries?); scanf(%d,n); getchar();//读走输入缓冲区中的回车符 printf(Inputtheirnames:\n); for(i=0;in;i++) { pStr[i]=name[i];//初始化gets(pStr[i]); } SortString(pStr,n); printf(Sortedresults:\n); for(i=0;in;i++)