输入的字符串之间 用 空格 分 隔 为好。用逗号分隔 处理 较难。
程序修改如下:
void swep(char *pt1, char *pt2)
{
char temp[20];
strcpy(temp,pt1);strcpy(pt1,pt2);strcpy(pt2,temp);
}
void exchange(char *a, char *b, char *c)
{
if (strcmp(a,b)>0) swep(a,b);
if (strcmp(a,c)>0) swep(a,c);
if (strcmp(b,c)>0) swep(b,c);
}
主函数:
char a[10];
char b[10];
char c[10];
scanf("%s %s %s", a,b,c); // 改用空白分隔
exchange(a, b, c);
printf("\n%s,%s,%s\n", a,b,c);
======
若用逗号分隔,要写成:
scanf("%[^,],%[^,],%s", a,b,c);
估计你看不懂。
你这个错误很多啊
以至于不知从何说起
#include
#include
int main()
{
int i=0,j=0;
char tmp[100]={0};
char arr[3][100] = {"poland","amreican","china"};
for (i=0;i<3;i++)
{
for (j=0;j<3-i-1;j++)
{
if (strcmp(arr[j],arr[j+1])>0)
{
strcpy(tmp,arr[j]);
strcpy(arr[j],arr[j+1]);
strcpy(arr[j+1],tmp);
}
}
}
for (i=0;i<3;i++)
{
printf("%s\n",arr[i]);
}
return 0;
}
amreican
china
poland
Press any key to continue