数组运用
想不明白我这段代码问题出在哪里,运行出来竟然结果都不对,人麻了。已知发现输入浮点数后,存到数组中竟然都变成0了。怎么会这样{:10_266:}#include<stdio.h>
int main()
{
int i,j;
float max=0.0,min=0.0,result;
float a;
printf("请输入三个数据:\n");
for(i=0;i<3;i++)
{
scanf("%f",&a);
}
for(i=0;i<3;i++)
{
max=max<a?a:max;
min=min>a?a:min;
}
result=(max-min)/min*100;
printf("最大不平衡率:%.2f\n",result);
return 0;
} 别的问题没看出来, min 和 max 的初值是不是改一改比较好?比如如果所有输入都是正的,那 min 就一直是0,最后就会除零
把 min 和 max 都初始化为第一个数应该会比较好(也要考虑会不会除零) 本帖最后由 wuliangtdi 于 2023-3-5 17:15 编辑
#include<stdio.h>
#include<float.h>
int main()
{
int i, j;
//FLT_MIN FLT_MAX分别为单浮点最小值和单浮点最大值
float max = FLT_MIN, min = FLT_MAX, result;
float a;
printf("请输入三个数据:\n");
for (i = 0; i < 3; i++)
{
scanf_s("%f", &a);
}
//for (int k = 0; k < 3; k++)
//{
// printf("%f\n", a);
//}
for (i = 0; i < 3; i++)
{
max = max < a ? a : max;
min = min > a ? a : min;
}
result = (max - min) / min * 100;
printf("最大不平衡率:%.2f\n", result);
return 0;
}
https://i.ibb.co/G9B2tnL/64043fd125a3b.png
没啥问题啊 dolly_yos2 发表于 2023-3-5 14:16
别的问题没看出来, min 和 max 的初值是不是改一改比较好?比如如果所有输入都是正的,那 min 就一直是0, ...
确实诶,我先去试试 dolly_yos2 发表于 2023-3-5 13:04
别的问题没看出来, min 和 max 的初值是不是改一改比较好?比如如果所有输入都是正的,那 min 就一直是0, ...
我服了,光想公式去了,除法基本要求给忘记了。谢谢大佬提醒,不然我头发都快想没了
页:
[1]