【发布时间】:2015-02-12 23:28:14
【问题描述】:
我正在上 C 编程入门课程。我们最新的项目让我们编写代码以使用 while 循环以 0.1 步长将 1-10 的 x 和 sqrt(x) 值制成表格。但是,当我尝试进行 0.1 增量时,没有任何内容添加到起始整数 1 中,并且程序在无限循环中运行。我将在下面发布代码。除了不执行该步骤之外,程序运行良好(并且可以使用其他增量,例如 1 等)。我该如何解决这个问题?
#include <stdio.h>
#include <math.h>
int main(void)
{
int x=1;
double sq_rt;
printf("Square Root Table: \n");
printf("Value of X Square Root of X\n");
while (x <= 10)
{
sq_rt = sqrt (x);
printf("%6i %20f \n", x, sq_rt);
x += 1e-1;
}
return 0;
}
【问题讨论】:
-
您不能将 0.1(浮点数)添加到整数 (
x);将x声明为浮点数:double x = 1;。 -
是的,你可以。它并不总是如你所愿。
-
@MartinTörnwall 是的,但我认为对于这个问题,将其保持为“不,你不能。”更有意义。最好作为一个完整的答案来解释这里发生的事情。
-
那我应该怎么写呢?就像现在一样,它在无限循环中运行,一直取 1 的平方根
-
@Evert:我不同意。当它清楚地编译没有错误时说“不,你不能”可能会比解释它是合法的但没有达到预期的效果更容易造成混乱。
标签: c while-loop increment tabular