对变量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();
}
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# 的帖子
就是啊,我太不认真了,呵呵谢谢指点 ----------------解决方案--------------------------------------------------------