从零开始写代码 2023-05-30 13:08 采纳率: 69.2%
浏览 25
已结题

用指针求三个浮点数的最值,数据溢出?

代码如下:

#include <stdio.h>
int main()
{
    void fun(float *x,float *y,float *z);
    float a,b,c;
    printf("请输入三个浮点数:");
    scanf("%f,%f,%f",&a,&b,&c);
    float *x=&a,*y=&b,*z=&c;

    fun(x,y,z);
    printf("最大值为:%f\n最小值为:%f\n",*z,  *x);
 } 
 void fun(float *x,float *y,float *z)
 {
if(*y>*x&&*y>*z)
*x = *y;
if(*y<*x&&*y<*z)
*z = *y;
 }

运行截图:

img

img

问题描述:
输入复杂小数会乱码,很奇怪,如果是简单整数则不会,功能是可以实现的。

  • 写回答

4条回答 默认 最新

  • 快乐鹦鹉 2023-05-30 13:35
    关注

    这是浮点数的误差造成的,不是乱码

    本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 6月22日
  • 已采纳回答 6月14日
  • 专家已采纳回答 6月14日
  • 创建了问题 5月30日