|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- int main()
- {
- int i;
- double sum;
- for(i = 1; i <= 100; i++)
- {
- if(i % 2 == 0)
- sum = sum - 1.0/i;
- else
- sum = sum + 1.0/i;
- }
- printf("sum = %lf.2", sum);
- return 0;
- }
复制代码
为啥运行不对
这段代码的问题在于变量 sum 没有初始化。在C语言中,如果没有给变量赋初始值,那么它的值是不确定的。在这种情况下, sum 的初始值是未定义的,导致程序的运行结果不可预测。
为了解决这个问题,你可以在 sum 的声明处给它一个初始值,例如将 double sum; 改为 double sum = 0; 。这样, sum 的初始值就是0,然后在循环中进行累加或累减操作,就能得到正确的结果。
修正后的代码如下:
- #include <stdio.h>
- int main()
- {
- int i;
- double sum = 0; // 给sum赋初始值0
- for(i = 1; i <= 100; i++)
- {
- if(i % 2 == 0)
- sum = sum - 1.0/i;
- else
- sum = sum + 1.0/i;
- }
- printf("sum = %lf.2", sum);
- return 0;
- }
复制代码
修正后的代码会正确计算并输出 sum 的值。
|
|