C语言的题目,判断3个数,由大大小排列。初学者,就不是不可以运行,大家帮我看下,思路对没对

#include "stdio.h"
void main()
{

int a,b,c;
scanf("%a,%b,%c",&a,&b,&c);
if{(a>b>c)
(b>c>a)
(c>a>b) }
printf("%a,%b,%c,",a,b,c);
printf("%b,%c,%a,",b,c,a);
else
printf("%c,%a,%b",c,a,b);

}

第1个回答  2012-08-07
写程序,要先认识问题,先在现实中对问题进行求解。
先在纸上把这个问题的求解过程详细地写出来。
记得,这种排序问题,都是用第一个与后面的比较,第二个与后面的比较...........
这是我修改的你的程序,
#include "stdio.h"
void main()
{

int a,b,c,n;
scanf("%a,%b,%c",&a,&b,&c);
if(a>b)//如果第一个数大于第二个数,变换位置,否则不变
{
n=a;
a=b;
b=n;
}
if(a>c)//如果第二个数大于第三个数,变换位置,否则不变
{

n=a;
a=c;
c=n;

}
if(b>c) //如果第三个数大于第四个数,变换位置,否则不变
{

n=b;
b=c;
c=n;

}

printf("%a,%b,%c,",a,b,c);

}

不足之处,请指正。
好好理解一下这个:
设个程序一般过程:
1,认识问题并找出其中的数据及它们之间的关系。
2,设计出合理的数据结构;
3,根据数据结构设计出求解问题的算法。
第2个回答  2012-07-29
你的if语句错了吧?
输入也错了...
输出也是……
等一下帮你打个正确的,你等几分钟
#include "stdio.h"
void main()
{

int a,b,c,t;
scanf("%d,%d,%d",&a,&b,&c);
if(a<b)
{
t=a;
a=b;
b=t;
}
if(b<c)
{
t=b;
b=c;
c=t;
}
if(a<b)
{
t=a;
a=b;
b=t;
}
printf("%d,%d,%d",a,b,c);
}

//你的思路太奇特,我换了个思路(一个没用循环的冒泡排序)
第3个回答  2012-08-02

C没有这种语法

第4个回答  2012-07-29
书写格式错了,逻辑也不是太好.
if(a>b)
{
if(c>a)
print(c,a,b);
else
{
f(c>b)
print(a,c,b);
else
print(a,b,c);
}
}
else
{
if(c>b)
print(c,b,a);
else
{
if(c>a)
print(b,c,a);
else
print(b,a,c);
}
}
第5个回答  2012-07-29
//你那个语法、逻辑太离谱了。
#include <stdio.h>
void exchange(int *a,int *b)
{
int t=*a;
*a=*b;
*b=t;
}
int main()
{
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if(x<y) exchange(&x,&y);
if(y<z) exchange(&y,&z);
if(x<y) exchange(&x,&y);
printf("x=%d y=%d z=%d\n",x,y,z);
return 0;
}本回答被网友采纳
相似回答