#include <stdio.h> #include <string.h> main() { void swap(char *,char *); char *str[3];//指针数组,表示元素str[0]、str[1]、str[2]内存储的为指针(地址)。 char arr1[50],arr2[50],arr3[50]; int i; printf("Input 3 lines:/n"); gets(arr1); gets(arr2); gets(arr3); str[0]=arr1; str[1]=arr2; str[2]=arr3;//str[0]、str[1]、str[2]分别用于存储字符串数组arr1、arr2、arr3的首地址 printf("Source order is:/n"); for(i=0;i<3;i++) puts(str[i]); puts(""); if(strcmp(str[0],str[1])>0) swap(str[0],str[1]); if(strcmp(str[0],str[2])>0) swap(str[0],str[2]); if(strcmp(str[1],str[2])>0) swap(str[1],str[2]); printf("Now, the order is:/n"); printf("%s/n%s/n%s/n",str[0],str[1],str[2]);//for(i=0;i<3;i++) puts(str[i]); } void swap(char *p1,char *p2) { char temp[50]; strcpy(temp,p1); strcpy(p1,p2); strcpy(p2,temp); }