mingye1234 2016-03-20 07:41 采纳率: 60%
浏览 1546
已采纳

C语言新手问题...老鸟莫嫌弃``

编写函数(无返回有三个参数), 向函数传递三个浮点数, 函数中实现(指针完成):1) 求得最大值和最小值(2) 交换最大值和最小值(3) 打印三个数

void MaxMinChangeEachOtherNew(float a,float b,float c){
    float *max;
    float *min;
    max = &(a > b ? a : b > c ? a > b ? a : b : c);         //这两行报错```为什么呢??
    min = &(a < b ? a : b < c ? a < b ? a : b : c);

    float s = *max;
    *max = *min;
    *min = s;

}

  • 写回答

3条回答

  • cxsmarkchan 2016-03-20 09:44
    关注

    前一个答案没解决交换问题,附上新答案。注意和原先程序的区别。要实现函数外的交换,重点是函数定义里面的参数列表要用指针。

    #include <stdio.h>
    void MaxMinChangeEachOtherNew(float *a,float *b,float *c){ //注意这里的参数用的是指针类型,这样才能修改a/b/c的值
        float *max;
        float *min;
        max = min = a;
        if(*b > *max) max = b;
        if(*c > *max) max = c;
        if(*b < *min) min = b;
        if(*c < *min) min = c;
    
        float s = *max;
        *max = *min;
        *min = s;
    }
    
    int main(){
        //测试代码
        float a = 1.2, b = 3.0, c = 2.1;
        MaxMinChangeEachOtherNew(&a, &b, &c);
        printf("%f\n%f\n%f\n", a, b, c);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题