马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 haiouda 于 2015-3-17 13:09 编辑 /***********************************
输入3个字符串,按由小到大的顺序输出
**************************************/
#include <stdio.h>
#include <string.h>
int main()
{
char *p[3],a0[20],a1[20],a2[20];
void p1(char *m[],int n);
void print(char *w[],int n);
int i,n=3;
printf("请输入 3 个字符串:");
scanf("%s",a0);
scanf("%s",a1);
scanf("%s",a2);
printf("\n");
for (i=0;i<3;i++)
{
switch (i)
{
case 0: p[i]=a0;break;
case 1: p[i]=a1;break;
case 2: p[i]=a2;
}
}
print (p,3);
printf("\n");
p1(p,3);
print (p,3);
printf("\n");
return 0;
}
void p1(char *m[],int n)
{
char *temp;
int i,j,k;
for (i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(strcmp(m[k],m[j])>0)
{
k=j;
}
if(k!=i)
{
temp=m[i]; m[i]=m[k];m[k]=temp;
}
}
}
void print(char *w[],int n)
{
int i;
for (i=0;i<n;i++)
{
printf("%s ",w[i]);
}
printf("\n");
}
这是书上课后题,越写感觉越麻烦;有没有简单的呀,帮我改改程序,谢谢了
我的问题是,指针数组在定义时没有赋值,就象上面那样子,然后,怎么给它赋值最简单呀(我是用了用了3个数组作中转,这是要求输入3个字串,要是要求输入1000个了串,还不得定义1000个数组了,麻烦死了)。
|