永发信息网

求救C语言编程,运行不了啊,在线等

答案:4  悬赏:30  手机版
解决时间 2021-02-01 13:27
  • 提问者网友:泪痣哥哥
  • 2021-01-31 17:47
求救C语言编程,运行不了啊,在线等
最佳答案
  • 五星知识达人网友:神的生死簿
  • 2021-01-31 19:22
修改如下
//---------------------------------------------------------------------------

#include
#include
main()
{
void sort(char *name[],int n), print(char *name[],int n);
int n=3,i,j;
char a[3][20];
char *name[3];
printf("请输入三个字符串\n");
for(i=0;i<3;i++)
scanf("%s",a[i]);
for(j=0;j<3;j++)
name[j]=a[j];
sort(name,n);
print(name,n);
}
void sort(char *name[],int n)
{ char *temp;
int i,j,k;
for(i=0;i { k=i;
for(j=i+1;j if(strcmp(name[k],name[j])>0) k=j;
if(k!=i)
{ temp=name[i]; name[i]=name[k]; name[k]=temp;}
}
}

void print(char *name[],int n)
{
int i;
for(i=0;i printf("%s\n",name[i]);
}

//---------------------------------------------------------------------------
全部回答
  • 1楼网友:雾月
  • 2021-01-31 22:35
void sort(char *name[],int n), print(char *name[],int n); 通常貌似要放到main外面 最好分行写
*name[j]=a[j]; 貌似没这样用的 要用也应该是 & 吧
  • 2楼网友:孤独入客枕
  • 2021-01-31 22:06
#include
#include
main()
{
void sort(char *name[],int n), print(char *name[],int n);
int n=3,i,j;
char a[3][20];//装三个字符串的话~要定义二堆数组
char *name[20];
printf("请输入三个字串\n");//改了个字
for(i=0;i<3;i++)
scanf("%s",a[i]);
for(j=0;j<3;j++)
name[j]=a[j];//这里~指针没确定时~不能用*操作符
sort(name,n);
print(name,n);
}
void sort(char *name[],int n)
{ char *temp;
int i,j,k;
for(i=0;i { k=i;
for(j=i+1;j if(strcmp(name[k],name[j])>0) k=j;
if(k!=i)
{ temp=name[i]; name[i]=name[k]; name[k]=temp;}
}
}
void print(char *name[],int n)
{
int i;
for(i=0;i printf("%s\n",name[i]);
}
这样运行没有问题~
  • 3楼网友:鱼芗
  • 2021-01-31 20:34
name是二维指针,name[0],name[1],name[2]分别记录着三个字符串的首地址a[0],a[1],a[2]。
赋值时要类型对等。。。
#include
#include
main()
{
void sort(char *name[],int n), print(char *name[],int n);
int n=3,i,j;
char a[3][20]; //这里
char *name[20];
printf("请输入三个字符\n");
for(i=0;i<3;i++)
scanf("%s",a[i]);
for(j=0;j<3;j++)
name[j]=a[j]; //这里
sort(name,n);
print(name,n);
}
void sort(char *name[],int n)
{ char *temp;
int i,j,k;
for(i=0;i { k=i;
for(j=i+1;j if(strcmp(name[k],name[j])>0) k=j;
if(k!=i)
{ temp=name[i]; name[i]=name[k]; name[k]=temp;}
}
}
void print(char *name[],int n)
{
int i;
for(i=0;i printf("%s\n",name[i]);
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯