首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

结果老是不对,哪位高手能给改一下并注明!

2012-04-05 
结果老是不对,谁能给改一下并注明!!/*输入5个不等长的字符串,在一函数中进行排序,输出结果*/#include std

结果老是不对,谁能给改一下并注明!!
/*输入5个不等长的字符串,在一函数中进行排序,输出结果*/

#include <stdio.h>
#include <string.h>
#define N 5
void compare (char *);
void main ()
{
char *s[N]={"nop","klm","ghi","def","abc"};
char **p=s;
int i;
compare(p);
printf("------------------\n");
for (i=0;i<N;i++)
printf("%s",*(p+i));
}

void compare(char *p)
{
int i,j;
char *s=0;
for (i=0;i<N-1;i++)
for (j=i+1;j<N;j++)
{
if (strcmp(p+i,p+j)>0)
{
strcpy(s,p+i);
strcpy(p+i,p+j);
strcpy(p+j,s);
}
}
}

[解决办法]

C/C++ code
#include <stdio.h>#include <string.h>#define N 5void compare (char **); //函数参数为二维数组int main (){char *s[N]={"nop","klm","ghi","def","abc"};char **p=s;int i;compare(p);printf("------------------\n");for (i=0;i<N;i++)printf("%s",*(p+i));system("pause");return 0;}void compare(char **p){int i,j;char s[20];//需要指定的空间,进行替换for (i=0;i<N-1;i++)for (j=i+1;j<N;j++){if (strcmp(*(p+i),*(p+j))>0){strcpy(s,p+i);strcpy(p+i,p+j);strcpy(p+j,s);}}} 

热点排行