当前位置: 代码迷 >> C语言 >> [求助]如何把2维字符串数组的实参带给行参
  详细解决方案

[求助]如何把2维字符串数组的实参带给行参

热度:132   发布时间:2007-07-31 23:05:42.0
[求助]如何把2维字符串数组的实参带给行参
题目是:用指针数组编写一个函数,用于将5个预定义的国家名排序,在main函数中调用该函数完成排序,并输出排序前后的信息
我写的是:
#include <stdio.h>
#include <string.h>
void sort(char **);
void main()
{
char str[5][20];
int i;
printf("请输入5个国家的名字:\n");
for(i=0;i<5;i++)
{
fflush(stdin);
gets(str[i]);
}
sort();//我的问题是 我现在这里怎么吧实参带给行参
}
void sort(char *name[])
{
int j,i;
char dummy[20];
for(i=1;i<5;i++,name++)
{
for(j=1;j<=5-i;j++)
{
if(strcmp(name[j-1],name[j])>0)
{
strcpy(dummy,name[j-1]);
strcpy(name[j-1],name[j]);
strcpy(name[j],dummy);
}
}
}
for(i=0;i<5;i++)
printf("%s\n",name[i]);
}
搜索更多相关的解决方案: 字符  

----------------解决方案--------------------------------------------------------
那位高手为我指点指点 谢谢了
----------------解决方案--------------------------------------------------------

#include <stdio.h>
#include <string.h>
void sort(char **);
void main()
{

char str[5][20];
int i;
char *p[5];
printf("请输入5个国家的名字:\n");
for(i=0;i<5;i++)
{
fflush(stdin);
gets(str[i]);
p[i]=str[i];

}

sort(p);//我的问题是 我现在这里怎么吧实参带给行参
}
void sort(char *name[])
{
int j,i;
char dummy[20];
for(i=1;i<5;i++)//为什么要name++不明白
{
for(j=1;j<=5-i;j++)
{
if(strcmp(name[j-1],name[j])>0)
{
strcpy(dummy,name[j-1]);
strcpy(name[j-1],name[j]);
strcpy(name[j],dummy);
}
}
}
for(i=0;i<5;i++)
printf("%s\n",name[i]);
}


----------------解决方案--------------------------------------------------------
回复:(syclee)[求助]如何把2维字符串数组的实参带给...
#include <stdio.h>
#include <string.h>
void sort(char **);
void main()
{
char *str[5];//这里定义成指针形式
int i;
printf("请输入5个国家的名字:\n");
for(i=0;i<5;i++)
{
fflush(stdin);
gets(str[i]);
}
sort(str);
}
void sort(char *name[])
{
int j,i;
char dummy[20];
for(i=1;i<5;i++)//这里不要name++,否则就出现错误
{
for(j=1;j<=5-i;j++)
{
if(strcmp(name[j-1],name[j])>0)
{
strcpy(dummy,name[j-1]);
strcpy(name[j-1],name[j]);
strcpy(name[j],dummy);
}
}
}
for(i=0;i<5;i++)
printf("%s\n",name[i]);
}
另外建议在sort函数里再引入一个参数,即国家个数(int n)
----------------解决方案--------------------------------------------------------
回复:(anelwl)回复:(syclee)[求助]如何把2维字符...
不知道你编译过没有,开始我也是这样想的,但我用vc编译为什么总提示内存引用错误。
----------------解决方案--------------------------------------------------------
  相关解决方案