#include
void sort_address(double*, double*, double*);
//函数以3个double变量的地址作为参数,把最小值放入第一个变量中,中间值放入第二个变量中,最大值放入第三个变量中
//实际上就是把三个数排序,从小到大
int main(void)
{
double i, j, k;
scanf("%lf %lf %lf", &i, &j, &k);
printf("original sequence:%lf %lf %lf\n", i, j, k);
sort_address(&i,&j,&k);
printf("after sequence:%lf %lf %lf\n", i, j, k);
return 0;
}
void sort_address(double* val1, double* val2, double* val3)
{
double temp;
if(*val1 > *val2)
{
temp = *val1;
*val1 = *val2;
*val2 = temp;
}
if(*val2 > *val3)
{
temp = *val2;
*val2 = *val3;
*val3 = temp;
}
if(*val1 > *val3)
{
temp = *val1;
*val1 = *val3;
*val3 = temp;
}
}
---------------
上面的程序,如果输入 2 1 3,结果可以正确输出为 1.000000 2.00000 3.00000
但是输入2.1 3.1 1.1,结果就成了2.10000 3.100000 1.10000,没看明白为什么会这样?
你的最后假背后府务事可一个判断有问题,以下济乡送州是改好的
每层再加个else结果;
目前都是a>b时的判断,缺少a跟小360问答数点没有关系;
上一篇:女子穿乔丹鞋给人啥啥感觉
下一篇:什么软件可以消除图中的人物