大一党,c语言初学者,问下程序哪里错了?
题目:编写一个书名排序程序,在主函数中输入n(n<=10)个书名存入一个二维数组,用函数void sort(char *name[],int n)实现他们的字典顺序,并用函数print(char *name[],int n)输出n个书名。样例输入
5
Follow me
BASIC
Great Wall
FORTRAN
Computer
样例输出
BASIC
Computer
FORTRAN
Follow me
Great Wall
我写的
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void sort(char *str[],int size)
{
int i,j;
char *temp;
for(i=0;i<size-1;i++)
{
for(j=i+1;j<size;j++)
{
if(strcmp(str[i],str[j])>0)
{
temp=str[i];
str[i]=str[j];
str[j]=temp;
}
}
}
}
void print(char *str[],int size)
{
int i;
for(i=0;i<size-1;i++)
printf("%s\n",*str[i]);
}
main()
{
char *p[200],str[200][20];
int i,n;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s",str[i]);
p[i]=str[i];
}
sort(p,n);
print(p,n);
}
程序运行不了