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

指针

2012-04-08 
指针求助#include stdio.h #include string.h #include windows.h #define N 4#define M 15int main

指针 求助
#include< stdio.h >
#include< string.h >
#include< windows.h >
#define N 4
#define M 15

int main()
{
char *p[N],str[N][M];
int i;
void sort(char *p[N]);
for(i=0;i<N;i++)
p[i] = str[i];
printf("请输入10个字符串:\n");
for(i=0;i<N;i++)
scanf("%s",p[i]);

sort(p);
printf("排序后:\n");
for(i=0;i<N;i++)
printf("%-15s",p[i]);
printf("\n");
system("pause");
return 0;
}

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

[解决办法]

C/C++ code
void sort(char *p[N]){int i,j;char s[M];for(i=0;i<N-1;i++)for(j=0;j<N-i-1;j++)  //这里应该是j<N-i-1{if(strcmp(*(p+j),*(p+j+1))>0) //否则(p+j+1)会越界{strcpy(s,*(p+j));strcpy(*(p+j),*(p+j+1));strcpy(*(p+j+1),s);}}} 

热点排行