#include <stdio.h>
#include <string.h>
int main(){
char a[10], b[10], c[10];
char *p1=a;
char *p2=b;
char *p3=c;
char *temp=a;
printf("please input the three strings:\n");
scanf("%s,%s,%s",a,b,c);
if ((strcmp(a, b)) > 0)
{
temp= p1;
p1=p2;
char*p2=temp;
}
else if ((strcmp(a, c)) > 0)
{
temp=p1;
p1=p3;
char*p3=temp;
}
else if ((strcmp(b, c)) > 0)
{
temp=p3;
p3=p2;
char*p2=temp;
}
printf("%s,%s,%s\n", p1, p2, p3);
return 0;
}
你这个怎么排序啊,if是分支语句,等于只进行一次比对。还有5 11 17行这不是重定义了嘛,出了作用域就释放了。
冒泡泡排序:
for(int i = 0; i < size; i++)
{
for(int j = 0 ;j < size - i - 1; j++)
{
if(arr[j] < arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
scanf("%s %s %s",a,b,c);
scanf %s中间空格