
c语言中将字符串进行“字典排序”之后输出的问题
#include<stdio.h>#include<string.h>intmain(){voidsort(char*s[]);char*a[10];inti;for(i...
#include<stdio.h>
#include<string.h>
int main()
{
void sort(char *s[]);
char *a[10];
int i;
for (i = 0; i < 10; i++)
scanf("%s", a[i]);
sort(a);
for (i = 0; i < 10; i++)
printf("s\n", a[i]);
return 0;
}
void sort(char *s[])
{
char t[10];
int i, j;
for (i = 0; i<9; i++)
for (j = 0; j<9 - i; j++)
if (strcmp(s[j], s[j + 1])>0)
{
strcpy(t, s[j]); strcpy(s[j], s[j + 1]); strcpy(s[j + 1], t);
}
}
这样写为什么会运行错误呢 展开
#include<string.h>
int main()
{
void sort(char *s[]);
char *a[10];
int i;
for (i = 0; i < 10; i++)
scanf("%s", a[i]);
sort(a);
for (i = 0; i < 10; i++)
printf("s\n", a[i]);
return 0;
}
void sort(char *s[])
{
char t[10];
int i, j;
for (i = 0; i<9; i++)
for (j = 0; j<9 - i; j++)
if (strcmp(s[j], s[j + 1])>0)
{
strcpy(t, s[j]); strcpy(s[j], s[j + 1]); strcpy(s[j + 1], t);
}
}
这样写为什么会运行错误呢 展开
展开全部
同学你好,你定义的指针数组,没有向系统申请空间
请用malloc向系统申请空间在赋值
#include<malloc.h>
for (i = 0; i < 10; i++){
a[i]=(char*)malloc(1024);
scanf("%s", a[i]);
}
改下赋值部分
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询