控制台输出说明
Explanation for console output
我写这段代码是为了显示处理浮点数时的错误:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
int main() {
float sum1 = 0, sum2 = 0, sum3 = 0;
double sum4 = 0, sum5 = 0, sum6 = 0;
printf("%f + %f = $f\n", 0.1, 0.2, 0.1 + 0.2);
printf("%f + %f = $f\n", 0.1, 0.3, 0.1 + 0.2);
for (float i = 1; i <= 10000; i++) {
sum1 = sum1 + (1 / i);
}
for (double i = 1; i <= 10000; i++) {
sum4 = sum4 + (1 / i);
}
for (float i = 1; i <= 100000; i++) {
sum2 = sum2 + (1 / i);
}
for (double i = 1; i <= 100000; i++) {
sum5 = sum5 + (1 / i);
}
for (float i = 1; i <= 1000000; i++) {
sum3 = sum3 + (1 / i);
}
for (double i = 1; i <= 1000000; i++) {
sum6 = sum6 + (1 / i);
}
printf("%f \t %lf \n%f \t %lf \n%f \t %lf \n", sum1, sum4, sum2, sum5, sum3, sum6);
return 0;
}
特别是部分
printf("%f + %f = $f\n", 0.1, 0.2, 0.1 + 0.2);
printf("%f + %f = $f\n", 0.1, 0.3, 0.1 + 0.2);
让我感到困惑,因为等号后的输出是 $f,我无法向自己解释。你能给我解释一下那是什么意思吗?
注:我在网上搜索了一下,没有找到。
printf
正在打印 $f
,从字面上看,它不将其识别为有效的说明符,除了 printf
说明符之外,没有其他内容流只需要 2 个浮点数,但你有 3 个参数,第三个不会被打印。
如果你确实想打印第三个参数,从你的代码来看,它是有道理的,那么它是一个错字,它应该是 %f
。
正如 chqrlie 在下面指出的,您也可能按错了键,因为 $
和 %
可能并排在您的键盘上。
我写这段代码是为了显示处理浮点数时的错误:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
int main() {
float sum1 = 0, sum2 = 0, sum3 = 0;
double sum4 = 0, sum5 = 0, sum6 = 0;
printf("%f + %f = $f\n", 0.1, 0.2, 0.1 + 0.2);
printf("%f + %f = $f\n", 0.1, 0.3, 0.1 + 0.2);
for (float i = 1; i <= 10000; i++) {
sum1 = sum1 + (1 / i);
}
for (double i = 1; i <= 10000; i++) {
sum4 = sum4 + (1 / i);
}
for (float i = 1; i <= 100000; i++) {
sum2 = sum2 + (1 / i);
}
for (double i = 1; i <= 100000; i++) {
sum5 = sum5 + (1 / i);
}
for (float i = 1; i <= 1000000; i++) {
sum3 = sum3 + (1 / i);
}
for (double i = 1; i <= 1000000; i++) {
sum6 = sum6 + (1 / i);
}
printf("%f \t %lf \n%f \t %lf \n%f \t %lf \n", sum1, sum4, sum2, sum5, sum3, sum6);
return 0;
}
特别是部分
printf("%f + %f = $f\n", 0.1, 0.2, 0.1 + 0.2);
printf("%f + %f = $f\n", 0.1, 0.3, 0.1 + 0.2);
让我感到困惑,因为等号后的输出是 $f,我无法向自己解释。你能给我解释一下那是什么意思吗? 注:我在网上搜索了一下,没有找到。
printf
正在打印 $f
,从字面上看,它不将其识别为有效的说明符,除了 printf
说明符之外,没有其他内容流只需要 2 个浮点数,但你有 3 个参数,第三个不会被打印。
如果你确实想打印第三个参数,从你的代码来看,它是有道理的,那么它是一个错字,它应该是 %f
。
正如 chqrlie 在下面指出的,您也可能按错了键,因为 $
和 %
可能并排在您的键盘上。