当前位置: 代码迷 >> C语言 >> 对变量a,b,c赋值,并由小到大排序
  详细解决方案

对变量a,b,c赋值,并由小到大排序

热度:206   发布时间:2008-03-29 10:30:09.0
对变量a,b,c赋值,并由小到大排序
初学者需要帮忙.......
搜索更多相关的解决方案: 赋值  变量  由小到大  

----------------解决方案--------------------------------------------------------
我试试
我是菜鸟,有错请指正,没有上机试,仅供参考
void order(float x,float y,float z)
{ float temp;
if(x>y)
  {temp=x;x=y;y=temp;}
if(x>z)
  {temp=x;x=z;z=temp;}
if(y>z)
  {temp=x;x=z;z=temp;}
printf("The order is: %f %f %f\n",x,y,z);
}
main()
{float a,b,c;
printf("please input a,b,c:\n");
scanf("%f,%f,%f",&a,&b,&c);
order(a,b,c);
}
----------------解决方案--------------------------------------------------------
为什么会有"order"??
----------------解决方案--------------------------------------------------------
用指针比较好
程序代码:
/*
WIN-TC下测试正常。
*/
#include<stdio.h>
void zh(int *x,int *y)
{      
        int a;
        if(*x>*y)
        {
                a=*x;
                *x=*y;
                *y=a;
        }
}
int main(void)
{
        int a,b,c;
        printf("请输入三个整数,空格格开,enter结束输入:\n");
        scanf("%d %d %d",&a,&b,&c);
        printf("\n您输入的三个数为:%d,%d,%d\n",a,b,c);
        if(a>b)
                zh(&a,&b);
        if(a>c)
                zh(&a,&c);
        if(b>c)
                zh(&b,&c);
        printf("转换后为:%d,%d,%d\n",a,b,c);


        getch();
}
        

----------------解决方案--------------------------------------------------------
^_^^_^^_^^_^^_^^_^^_^^_^
----------------解决方案--------------------------------------------------------
回复 3# 的帖子
order是他写的程序中的一个函数名,他用函数实现转换并输出。



2#
您在传递值的时候,少用了&,应当为:order(&a,&b,&c);

[[it] 本帖最后由 广陵绝唱 于 2008-3-29 12:31 编辑 [/it]]
----------------解决方案--------------------------------------------------------
我觉得order(a,b,c)没错呀,在函数定义时,行参就是float型的三个变量,在引用order 函数时直接用a,b,c应该没问题呀,不过我没有上机测试,要是您方便上机测试一下吧,不管对错我都谢谢您指教了!
----------------解决方案--------------------------------------------------------
回复 7# 的帖子
呵呵,对不起,是我弄错了,子函数非指针,传递时不用&。

不过您的子函数中的最后一个if中,变量用错了,改过来就好了。

嘻嘻,共同进步。
----------------解决方案--------------------------------------------------------
#include <stdio.h>
void order(float x,float y,float z)
{
float temp;
if(x>y)
{temp=x;x=y;y=temp;}
if(x>z)
{temp=x;x=z;z=temp;}
if(y>z)
{temp=y;y=z;z=temp;}
printf("The order is:%f,%f,%f\n",x,y,z);
}
main()
{ float a,b,c;
  printf("Please input a,b,c:\n");
  scanf("%f,%f,%f",&a,&b,&c);
  order(a,b,c);
}
----------------解决方案--------------------------------------------------------
回复 8# 的帖子
就是啊,我太不认真了,呵呵谢谢指点
----------------解决方案--------------------------------------------------------