c - "Uninitialized Local Variable"错误,尽管定义了变量?

标签 c

这是代码。它表示变量未初始化,尽管在 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/

相关文章:

未知文件类型的 C 文件输入/输出 : File Copying

c - 菜单功能

c - fread(&c, 1, 1, input) 和 fgetc(input) 读取一个字节的区别

c - Web 服务器配置 - shttpd/Mongoose

c - 从响应中获取请求的 url

c - 两种不同结果(即正面或负面)的数组问题

c - 使用 Cimg 库读取 jpeg 图像时出现堆栈溢出错误

c - c : "..."". ..”中一个接一个的字符串,就好像它们是串联的一样

c - 数组声明为 int v[100] 但 &(v[100]) 没有给出警告

c - 为什么我们不能访问我们在结构中填充的位?