注册 登录
编程论坛 C++教室

输入3个数a,b,c,要求按大小顺序把他们输出,程序有错,不知道该改哪里

空想家 发布于 2016-05-16 18:27, 4101 次点击
#include<stdio.h>
int main()

{
        
swap(int *a,int *b);
    int a,b,c;
    printf("input 3 numbers:\n");
    scanf("%d,%d,%d",&a,&b,&c);
    if(a<b)swap a,b;
    if(a<c)
    printf("%d,%d,%d",c,a,b);
    else
        if(a>b)
            printf("%d,%d,%d",a,c,b);
        else
            printf("%d,%d,%d",a,b,c);
        return 0;
}
swap(int *a,int *b)
{
    int tmp;
    tmp=*b;
    *b=*a;
    *a=tmp;
}
2 回复
#2
wengbin2016-05-17 09:09
主函数体内的swap(int *a,int *b);是什么东西??swap a,b;这调用方法明显有问题呀,应该有编译错误提示的吧,自己改改

[此贴子已经被作者于2016-5-17 09:10编辑过]

#3
wengbin2016-05-17 09:18
程序代码:
#include<stdio.h>
void swaps(int *a,int *b);
int main()
{
    int a,b,c;
    printf("input 3 numbers:\n");
    scanf("%d,%d,%d",&a,&b,&c);
    if(a<b)swaps(&a,&b);//看你的原型,这里应该传入地址吧,不是传入值的
    if(a<c)
    printf("%d,%d,%d",c,a,b);
    else
        if(a>b)
            printf("%d,%d,%d",a,c,b);
        else
            printf("%d,%d,%d",a,b,c);
    return 0;
}
void swaps(int *a,int *b)
{
    int tmp;
    tmp=*b;
    *b=*a;
    *a=tmp;
}
1