这是代码。它表示变量未初始化,尽管在 main 函数之后的代码顶部定义了它。
#include<stdio.h>
int main()
{
int n, sum=0; i=0;
printf("Please enter a number to evaluate\n");
scanf_s("%d",&n);
for(i=0; i<=n; i++)
{
double(sum) = sum + double(1/n);
}
sum = (int)sum;
if(sum == 1)
{
printf("Adding %d 1/%d's gives a result of 1\n",n,n);
}
if(sum <= 1)
{
printf("Adding %d 1/%d's gives a result less than 1\n",n,n);
}
if(sum >= 1)
{
printf("Adding %d 1/%d's gives a result greater than 1\n",n,n);
}
return(0);
}
最佳答案
要么删除 sum=0;
后的分号并更改
int n, sum=0; i=0;
到
int n, sum=0, i=0;
或者改变int n, sum=0; i=0;
到
int n, sum=0; int i=0;
边注:
声明
double(sum) = sum + double(1/n);
错了。如果你的意思是 double(sum)
强制转换那么它不是一个有效的语法。如果它像 (double)sum
那么它仍然是错误的,因为 =
需要左值作为它的左操作数。
我建议您将 sum
声明为 double
并将其重写为
int n = 1, i;
printf("Please enter a number to evaluate\n");
scanf_s("%d",&n);
double sum = 0.0;
for(i=0; i<=n; i++)
{
sum = sum + (1.0/n);
}
关于c - "Uninitialized Local Variable"错误,尽管定义了变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20890623/