如何将for循环中的浮点数转换为C中的整数,以便正确计算
How to convert floating-point in for-loop to integer in C, for correct calculation
我正在努力更好地理解 C。在练习中,我必须找出以下代码示例的错误所在。
#include <stdio.h>
int main() {
int count;
float sum;
float i;
sum = 0, count = 0;
for (i = 1000; i <= 1000.04; i += .01) {
sum += i;
count++;
}
printf("Sum: %f, Count: %d\n", sum, count);
return 0;
}
我发现在循环中使用浮点数是个坏主意,因为它不准确会导致问题。下一步是重写代码,使其做同样的事情,但不在循环中使用浮点数。我被困在这个任务上,我不知道如何替换 i <= 1000.04
。对于 i += .01
我想我可以用 i++
替换它并在其他地方除以 100。
知道如何正确修复它吗?
#include <stdio.h>
int main() {
int count;
float sum;
int i;
sum = 0, count = 0;
for (i = 100000; i <= 100004; i++) {
sum += i;
count++;
}
printf("Sum: %f, Count: %d\n", sum/100, count);
return 0;
}
我正在努力更好地理解 C。在练习中,我必须找出以下代码示例的错误所在。
#include <stdio.h>
int main() {
int count;
float sum;
float i;
sum = 0, count = 0;
for (i = 1000; i <= 1000.04; i += .01) {
sum += i;
count++;
}
printf("Sum: %f, Count: %d\n", sum, count);
return 0;
}
我发现在循环中使用浮点数是个坏主意,因为它不准确会导致问题。下一步是重写代码,使其做同样的事情,但不在循环中使用浮点数。我被困在这个任务上,我不知道如何替换 i <= 1000.04
。对于 i += .01
我想我可以用 i++
替换它并在其他地方除以 100。
知道如何正确修复它吗?
#include <stdio.h>
int main() {
int count;
float sum;
int i;
sum = 0, count = 0;
for (i = 100000; i <= 100004; i++) {
sum += i;
count++;
}
printf("Sum: %f, Count: %d\n", sum/100, count);
return 0;
}