简单C程序,帮忙看看哪里错了

来源:百度知道 编辑:UC知道 时间:2024/06/15 03:06:34
#include <stdio.h>
#include <conio.h>
void main()
{
int a,b,c;
printf("请输入3个整数\n");
scanf("%d,%d,%d",&a,&b,&c);
if(b>a) a=b;
if(c>a) a=c;
if(c>b) b=c;
printf("%d,%d,%d",&a,&b,&c);
}
从大到小输出三个整数
那if(b>a) a=b;
if(c>a) a=c;
if(c>b) b=c;这一块该怎么改呢?

不是printf("%d,%d,%d",&a,&b,&c);
而是 printf("%d,%d,%d",a,b,c);

还有编程的好习惯定义的变量一定要初始化:int a=0,b=0,c=0;
还有就是本身程序算法就不对,a的值都最好都没有了,改成
main()
{
int a,b,c,t;
scanf("%d,%d,%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,%d,%d",a,b,c)

}

是要有个中间变量的,你要是不想要中间变量可以看看这个程序,很有意思,可以开东西啊脑筋:
main()
{
int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
if(a>b)
{
a=a+b;
b=a-b;
a=a-b;
}
if(a>c)
{
a=a+c;
c=a-c;
a=a-c;
}
if(b>c)
{
b=b+c;