|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<string.h>
int main()
{
int n,i;
char a[101][101],*p[101];
void s(char*p[],int n);
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s",a[i]);
p[i]=a[i];
}
s(p,n);
for(i=0;i<n;i++)
printf("%s\n",p[i]);
return 0;
}
void s(char *p1[],int n)
{
int j,k;
char *t;
for(j=0;j<n-1;j++)
for(k=j+1;k<n;k++)
if(strcmp(p1[j],p1[k])>0)
{
t=p1[j];
p1[j]=p1[k];
p1[k]=t;
}
}
上面是正确做法
下面是错误做法
#include<stdio.h>
#include<string.h>
int main()
{
int n,i;
char a[101][101],*p[101];
void s(char*p[],int n);
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s",a[i]);
p[i]=a[i];
}
s(p,n);
for(i=0;i<n;i++)
printf("%s\n",*p[i]);
return 0;
}
void s(char *p1[],int n)
{
int j,k;
char t;
for(j=0;j<n-1;j++)
for(k=j+1;k<n;k++)
if(strcmp(p1[j],p1[k])>0)
{
t=*p1[j];
*p1[j]=*p1[k];
*p1[k]=t;
}
}
为什么输出我改成输出*p【i】就不行了? 而p[i]不是代表地址吗?
题目如下 字符串排序
Sample Input
5
red
blue
yellow
green
purple
Sample Output
blue
green
purple
red
yellow
|
|