#include <stdio.h>
int main()
{
int a,b,c,d;
scanf("%d,%d,%d\n",&a,&b,&c);
if(b>a)
{d=a;
a=b;
b=d;
}
if(c>a)
printf("%d,%d,%d\n",c,a,b);
else
{
if(b<c) printf("%d,%d,%d\n",a,c,b);
else printf("%d,%d,%d\n",a,b,c);
}
return 0;
}
请问哪里出错了???
下面介绍两种解题方法
1.用if else语句求解:
#include<stdio.h>
int main()
{
int a,b,c,x;
scanf("%d %d %d",&a,&b,&c);
if(a>b){x=a;a=b;b=x;}
if(a>c){x=a;a=c;c=x;}
if(b>c){x=b;b=c;c=x;}
printf("%d %d %d\n",a,b,c);
return 0;
}
2.用数组求解:
#include<stdio.h>
int main()
{
int a,b,c,t;
printf("请输入三个整数:\n");
scanf("%d\t%d\t%d", &a, &b, &c);
if (a > b)
{
t = a;
a = b;
b = t;
}
if (a > c)
{
t = a;
a = c;
c = t;
}
if (b > c)
{
t = b;
b = c;
c = t;
}
printf("这三个数中最大的数是:%d\n", c);
printf("将这三个数按从大到小的顺序排列为:%d\t%d\t%d\n", c, b, a);
return 0;
}
上述过程中我们用到了数组的知识,数组使用需要注意的是:
1) 数组中每个元素的数据类型必须相同,对于int a[4];,每个元素都必须为 int。
2) 数组长度 length 最好是整数或者常量表达式,
3) 访问数组元素时,下标的取值范围为 0 ≤ index < length,
4) 数组是一个整体,它的内存是连续的。
花了点时间看了四楼大哥的,然后自己试了能排列出来的语句,成功了,挺开心,也发一下吧
void main()
{
int a, b, c, max;
printf("请输入三个数:\n");
scanf_s("%d,%d,%d", &a, &b, &c);
printf("%d,%d,%d", a > (b > c ? b : c) ? a : (b > c ? b : c), (a > (b > c ? b : c) ? (b > c ? b : c) : a) > (b > c ? c : b) ? (a > (b > c ? b : c) ? (b > c ? b : c) : a) : (b > c ? c : b), (a > (b > c ? b : c) ? (b > c ? b : c) : a) > (b > c ? c : b) ? (b > c ? c : b) : (a > (b > c ? b : c) ? (b > c ? b : c) : a));
}
注:a>b?a:b 的意思是a>b成立值是a,不成立表达式值为b
纯粹瞎试试,推荐还是分步慢慢来的比较靠谱,比较简洁
可以告诉我错的地方么?
追答scanf输入格式里最后不需要\n
本回答被提问者采纳