急需解决的问题,谁能改这段C程序的错误,谢谢
void main()
{
char *str[5];
int n;
n=Accept(char *str[][10]);
Sort(char *name[],int n);
Print(char *name[],int n);
}
int Accept(char *str[][10])
{
int m,i,sum;
printf("Please input the number of string:\n");
scanf("%d",&m);
for(i=0;i<m;i++)
{
str=(char*)malloc(m*10*sizeof(char));
printf("Please input %d string:\n",i+1);
scanf("%s",str[i][10]);
sum=str[i][10];
sum++;
}
free(str);
return sum;
}
void Sort(char *name[],int n)
{
int i;
int j;
char temp;
for(i=0;i<n-1;j++)
for(j=i+1;j<n;j++)
if(strcmp(*(name+i),*(name+j)>0))
{
temp=*(name+i);
*(name+i)=*(name+j);
*(name+j)=temp;
}
}
void Print(char *name[],int n)
{
int i;
printf("The result is:\n");
for(i=0;i<n;i++)
printf("%s\n",*(name+i));
}
参考答案:未做到先声明后使用的原则,子函数调用前未声明
还有很多数据类型简直是乱弹琴,定义一个字符型指针*str怎么会写成指针数组的呢??而且下面作为实参传递的时候怎么又变二维数组了呢?还有太多,我不一一指出了,楼主还是再多看看书好!