【发布时间】:2017-04-08 22:30:28
【问题描述】:
#include <stdio.h>
float diff_abs(float,float);
int main() {
float x;
float y;
scanf("%f", &x);
scanf("%f", &y);
printf("%f\n", diff_abs(x,y));
return 0;
}
float diff_abs(float a, float b) {
float *pa = &a;
float *pb = &b;
float tmp = a;
a = a-b;
b = *pb-tmp;
printf("%.2f\n", a);
printf("%.2f\n", b);
}
大家好,我正在编写一个 C 程序,它应该保存在变量 a-b 和 b 变量 b-a 中。 没关系,但是如果我在输出结束时运行我的代码,编译器会显示这条消息:
3.14
-2.71
5.85
-5.85
1.#QNAN0
1.#QNANO 是什么意思?
【问题讨论】:
-
附注3.14和-2.71是输入,5.85和-5.85是输入和输出
-
没有任何输出来自编译器。而且您的代码会调用未定义的行为。为什么你会看到编译器警告?该代码还显示了其他误解。 C 是严格按值传递的!
-
函数中没有返回值。
-
你是先用谷歌搜索
1.#QNAN吗? 1.#QNAN error C++,它是QNAN0,而不是QNANO1.#QNAN0 output when calculating standard deviation C -
我重新打开了这个问题,因为它被标记为wrong dupe。
标签: c pointers return output function-calls