这段代码在DEV-C中应该改什么?

来源:百度知道 编辑:UC知道 时间:2024/06/16 05:48:28
#include "stdio.h"
#include "string.h"
main()
{char *str1[20],*str2[20],*str3[20];
char swap();
printf("Please input three string:\n");
scanf("%s",str1);
scanf("%s",str2);
scanf("%s",str3);
if(strcmp(str1,str2)>0) swap(str1,str2);
if(strcmp(str2,str3)>0) swap(str2,str3);
if(strcmp(str1,str3)>0) swap(str1,str3);
printf("after being sorted.\n");
printf("%s\n%s\n%s\n",str1,str2,str3);
getch();
}
char swap(p1,p2)
char *p1,p2;
{char *p[20];
strcpy(p,p1);
strcpy(p1,p2);
strcpy(p2,p);
}

这段代码在WIN-TC中能正常运行,在DEV-C中就不能了,到 if(strcmp(str1,str2)>0) swap(str1,str2);这段就错误,请问怎么回事?
spacelishuai的还是不行

不好意思,刚才没仔细看。这次改好了,可以交换字符串的值!但是你要给字符串排序的话还得改改。
#include "stdio.h"
#include "string.h"
#include <iostream>
void swap(char*,char*);
int main()
{
char str1[20],str2[20],str3[20];

printf("Please input three string:\n");
scanf("%s",str1);
scanf("%s",str2);
scanf("%s",str3);
if(strcmp(str1,str2)>0) swap(str1,str2);
if(strcmp(str2,str3)>0) swap(str2,str3);
if(strcmp(str1,str3)>0) swap(str1,str3);
printf("after being sorted.\n");
printf("%s\n%s\n%s\n",str1,str2,str3);
system("pause");
return 0;
}
void swap(char *p1,char *p2){
char p[20];
strcpy(p,p1);
strcpy(p1,p2);
strcpy(p2,p);
}