这是一个对输入字符串排序的问题
应该是输入有点问题,因为直接对指针数组char*s[5]直接初始化赋值是可以运行的,但调用输入函数就出现问题了//用指针对输入字符串进行排序
#include<stdio.h>
#include<string.h>
void input(char*p[],int n);
void range(char*p[],int n);
void output(char*p[],int n);
void main()
{
// char *s[]={"pascl","basic","cobol","prolog","lisp"};
char *s[5];
input(s,5);
range(s,5);
output(s,5);
}
//输入函数
void input(char*p[],int n)
{
int i;
for(i=0;i<n;i++)
{
scanf("%s",p[i]);//p是指向字符数组的指针,*p是指向数组的第一个元素的指针
}
}
//排序函数
void range(char*p[],int n)
{
int i,j;
char *temp;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(strcmp(p[i],p[j])>0)
{
temp=p[i];
p[i]=p[j];
p[j]=temp;
}
}
}
}
//输出函数
void output(char*p[],int n)
{
int i;
for(i=0;i<n;i++)
{
puts(p[i]);
}
}