C语言三数比较大小解决办法?
编写一个程序,输入3个数a,b,c,从小到大打印出对应的值;如a=2,b=1,c=3,则打印 最终结果是 1,2,3(备注:a,b,c的值不变)注意 这个题说的是 adc 三个数的位置没有发生改变,也就是说不是用 互相调换位置出来的,
比如a = 3b = 2 c = 4
结果应该是 b=2<a=3 < c=4;
本帖最后由 ~风介~ 于 2015-10-26 13:40 编辑
这样应该可以你试试看:
#include<stdio.h>
void main()
{
int a, b, c,temp;
printf("请输入3个整数;");
scanf("%d%d%d", &a, &b, &c);
if (a > b)
{
temp = a;
a = b;
b = temp;
}
if (a > c)
{
temp = a;
a = c;
c = temp;
}
if (b > c)
{
temp = b;
b = c;
c = temp;
}
printf("%d %d %d\n",a,b,c);
} 用一下if嵌套比较就可以了: 把最小的放在第一个输出, 依此类推。 a和b比较如果a>b则交换a和b的值;b和c比较如果b>c交换b和c的值;a和b比较如果a>b则交换a和b的值;(仅供参考) 赋了值在赋回来不就好了 同三。 不好意思 是大家没有理解我的意思,,我那个是abc 不能调换位置的,我已经会了,思路是求 出 最大值,在求出最小值然后 再让abc 来判断中间值,就可以了我贴出代码!int a,b,c;
// printf("输入三个数来判断: \n");
// scanf("%d%d%d",&a,&b,&c);
// int max1 = a > b?a:b;
// int max= max1 > c?max1:c;
// int min1 = a < b?a:b;
// int min= min1 < c?min1:c;
// //上述我们判断了最大和最小数,下面我们只需要知道中间数就可以了,所一开始判断中间数!
// if (a != max && a != min)
// {
// printf("关系式:%d < %d < %d \n",min,a,max);
// }
// if (b !=max && b !=min)
// {
// printf("关系式:%d < %d < %d \n",min,b,max);
// }
// if (c !=max && c !=min)
// {
// printf("关系式:%d < %d < %d \n",min,c,max);
// }
// printf("%d%d%d",a,b,c);
//
页:
[1]