关于c语言三个数排列大小的问题

#include<stdio.h>
void main()
{
int a,b,c,t;
printf("请输入三个整数:");
scanf("%d,%d,%d",&a,&b,&c);
if(a>b)
t=a;
a=b;
b=t;
printf("%d,%d\n",b,a);
if(b>c)
t=b;
b=c;
c=t;
printf("%d,%d\n",c,b);
if(a>c)
t=a;
a=c;
c=t;
printf("%d,%d\n",a,c);
}
请问这个程序哪里错了?
要求从小到大输出,调试结果有问题!麻烦解答一下,谢谢了!

你要输出三个数, 你的程序只输出俩数字的比较:
#include<stdio.h>

int main()
{
int a,b,c;
printf("input three number:");
scanf("%d,%d,%d",&a,&b,&c);
if (a>=b) //a>=b
if (b>=c) // a>b>c
printf("%d,%d,%d\n",c,b,a);
else
if (a>=c) // a>c>b
printf("%d,%d,%d\n",b,c,a);
else // c>a>b
printf("%d,%d,%d\n",b,a,c);
else // a<b
if (a>=c) //c<a<b
printf("%d,%d,%d\n",c,a,b);
else // a<c
if (b>=c) // a<c<b
printf("%d,%d,%d\n",a,c,b);
else // a<b<c
printf("%d,%d,%d\n",a,b,c);
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-04-04
#include
<stdio.h>
void
main(){
float
a,b,c,d;
printf("请输入任意三个数");
scanf("%f,%f,%f",&a,&b,&c);
if(a>b)
{d=a;
a=b;
b=d;}
if(a<c)
{d=c;
c=a;
a=d;}
if(b>c)
{d=b;
b=c;
c=d;}
printf("三个数中最大的数是%f",d);
}
这样试试,还有,最好不要用float类型进行比较,可能会存在误差。
第2个回答  2013-02-04
你这个程序写的有点乱呃
一个是if语句下面没有{}
再一个这个从小到大排的逻辑也不对
比如c>a>b,满足a>b 直接printf("%d,%d\n",b,a);,可其实c最大呢
第3个回答  2013-02-04
if(b>c)
t=b;
b=c;
c=t;
少括号啊来自:求助得到的回答
第3个回答  2013-02-04
#include<stdio.h>
void main()
{
int a,b,c,t;
printf("请输入三个整数:");
scanf("%d,%d,%d",&a,&b,&c);
if(a>b){
t=a;
a=b;
b=t;
}//执行到这里表示满足a小于b,接下来把c插进去就行了
if(c<a)
printf("%d,%d,%d\n",c,a,b);
else if(c>b)
printf("%d,%d,%d\n",a,b,c);
else
printf("%d,%d,%d\n",a,c,b);
}本回答被网友采纳

c语言三个数排序从小到大
c语言三个数排序从小到大如下:定义数据类型,本实例中a、b、c、t均为基本整型。使用输入函数获得任意3个值赋给a、b、c。使用if语句进行条件判断,如果a大于b,则借助于中间变量t互换a与b值,依此类推比较a与 c、b与c,最终结果即为a、b、c的升序排列。使用输出函数将a、b、c的值依次输出。...

问:有3个数a,b,c,要求按大小顺序把它们输出。(C语言、传统流程图)_百 ...
3者比较就是两两比较综合处理,两两比较实现互换要通过中间变量t,即如果a>b,按从小到大排列则把a放在t中,然后把b放在a中,最后再把a取出放在b中,用C语言说就是赋职号=.按大小顺序排列只须把a>b,a>c,b>c改为a 四、传统流程图如下:

C语言程序题目:由键盘输入三个数a,b,c,按从小到大的顺序输出这三个数...
int a, b, c, temp;printf("请输入三个数:");scanf("%d %d %d", &a, &b, &c);\/\/ 判断并交换,使得a是最小的数 if (a > b) { temp = a;a = b;b = temp;} \/\/ 如果a不是最小的,再与c比较,使a成为最小 if (a > c) { temp = a;a = c;c = temp;} \/\/ ...

C语言 3个数比大小,我这种做法什么地方不对呢?
只有三个数,有else if对c的各种情况考虑,c可能大于a,b之中的最大值,也可能在a,b之间,也可能是最小的,这样用else if就可以排列啦

怎样用C语言写3个数从小到大排列的程序
a:b;}\/\/返回两者中较小数int min(int a,int b){ return a

用c语言将三个数从小到大排列,请纠错。
您好!很高兴为您解答。以下是改正后的代码:include<stdio.h> include<stdlib.h> main(){ int a,b,c,d;printf("请输入三个整数:\\n");scanf("%d,%d,%d",&a,&b,&c);if(a>b){d=a,a=b;} else{d=b;} if(c>d){printf("%d>%d>%d\\n",c,d,a);} else if(a>c)printf("...

c语言实现三个数从小到大排列
两个数的排序,只需要比较一下,如果第一个比第二个大,交换一下,否则什么都不用做。三个数的排序 ,可以先将前两个排序,保证第一个比第二个小。然后将第二个和第三个数排序,保证第二个比第三个小。经过上面两次排序,保证了第三个是最大的,但不能保证第二个还比第一个大,因为第二次...

c语言中三个数比较大小结果为什么总是最后一个数?
您好,很高兴回答您的问题。三个数比较大小,在现实生活中是先比较两个数的大小,然后用之前比较后的大者与第三个数比较,从而找出其中的最大者。在c语言中,比较三个数大小的方法与现实生活中是基本一样的,都是先找出两个数中的大者,然后再与第三个数比较,从而找出其中的最大者。具体比较程序...

C语言中怎么把三个整数从小到大排列
{int a[3],i,d; printf("请输入三个整数:"); for(i=0;i<3;i++)\/\/分别输入三个整数 scanf("%d",&a[i]); for(i=0,i<3;i++)\/\/将数组中三个数由小到大排列 for(j=i,j<3;j++) if(a[i]>a[i]) {d=a[i]; a[i]=a[j]; a[j]=d; }...

用C语言使三个数按大小关系排列,我编了个程序,但是运行时没排序,请高...
感觉你做这个太复杂了,如果只是单纯的打印,你可以这样,用排序法int a,b,c, nMid;\/\/输入值if(a>b)\/\/交换{nMid = a;a = b;b = a; }同理a再和c比较,然后b和c比较就行了,这样就是从小到大排序,建议你看看排序算法

相似回答