【问题标题】:variable inside int in c giving exceptional output [closed]c中的int内部变量提供异常输出[关闭]
【发布时间】:2022-01-21 12:48:36
【问题描述】:

在下面给定的程序中,如果我输入 n=0,则程序给出正确答案,但如果我写 n 而不是 n=0,则程序给出错误答案。如果我输入 k=10,则输出为 94,但正确答案为 55。为什么要添加额外的 39?

int main(){
    // program to calculate the sum of 'n' numbers
    int i=1,k,n;
    printf("Enter number: ");
    scanf("%d",&k);
    do{
        n+=i;
        i++;
    }while(i<=k);
    printf("The sum is: %d",n);
    return 0;
}

【问题讨论】:

  • 提示:n 的初始值是多少?

标签: c


【解决方案1】:

您的循环正在向n 的当前值添加一个值,但您从未设置n 的初始值。这意味着它的值是indeterminate,并且读取一个不确定的值(在这种情况下,当您添加它时),当相关变量的地址从未被占用时触发undefined behavior

n 初始化为 0,这样您就有了一个有效的起点。

int i=1, k, n=0;

【讨论】:

    猜你喜欢
    • 2021-08-21
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多