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

编译不通过,求改错!该如何解决

2012-03-31 
编译不通过,求改错!/*输入5个不等长的字符串,在一函数中进行排序,输出结果*/#include stdio.h#include

编译不通过,求改错!
/*输入5个不等长的字符串,在一函数中进行排序,输出结果*/

#include <stdio.h>
#include <string.h>
#define N 5
void compare (char *)
void mian ()
{
char *s[N];
char **p=s;
int i;
printf ("Enter string:\n");
for (i=0;i<N;i++)
scanf("%s",s+i);
compare(p);
printf("------------------");
for (i=0;i<N;i++)
printf("%s",*p+i);
}

void compare(char *p)
{
int i,j;
char *s=NULL;
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 *)//1、形参 2、少分号void mian (){char *s[N];char **p=s;int i;printf ("Enter string:\n");for (i=0;i<N;i++)scanf("%s",s+i);//一般操作就会越界,如果是指针数组没有分配内存compare(p);printf("------------------");for (i=0;i<N;i++)printf("%s",*p+i);}void compare(char *p){int i,j;char *s=NULL;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);}}}//对指针操作实在不敢恭维。。。。 

热点排行