#include<stdio.h> #include<string.h> #define M 20 void main() { int a,b,c,*p1,*p2,*p3,tmp; char str1[M],str2[M],str3[M],d[M],*p4,*p5,*p6,*tmp1; /* printf("输入3个整数\n"); scanf("%d%d%d",&a,&b,&c);*/ printf("输入3个字符串\n"); gets(str1);//getchar(); gets(str2);//getchar(); gets(str3);//getchar(); p1=&a;p2=&b;p3=&c; p4=str1;p5=str2;p6=str3;tmp1=d; /* if(*p1>*p2) { tmp=*p1;*p1=*p2;*p2=tmp; } if(*p2>*p3) { tmp=*p2;*p2=*p3;*p3=tmp; } if(*p1>*p2) { tmp=*p1;*p1=*p2;*p2=tmp; }*/ if(strcmp(str1,str2)>0) { tmp1=p4;p4=p5;p5=tmp1; &str1[]=p4;&str2[]=p5; } if(strcmp(str2,str3)>0) { tmp1=p5;p5=p6;p6=tmp1; // str2[0]=*p5;str3[0]=*p6; } if(strcmp(str1,str2)>0) { tmp1=p4;p4=p5;p5=tmp1; // str1[0]=*p4;str2[0]=*p5; } printf("%d %d %d\n",a,b,c); puts(p4);//printf("\n"); puts(p5);//printf("\n"); puts(p6);//printf("\n"); } 31行那一句,该怎么赋值?把指针所指的字符串重新赋给数组?