我的 c++ 编译器给出了正确的输出,但 c++ 的 codeforces 编译器给出了错误的输出

问题描述

问题 - 一名士兵想在商店购买香蕉。他必须为第一个香蕉支付 k 美元,为第二个香蕉支付 2k 美元,依此类推(换句话说,他必须为第 i 个香蕉支付 i·k 美元)。

他有 n 美元。他要向他的朋友士兵借多少钱才能买香蕉?

输入 - 第一行包含三个正整数k,n,w(1 ≤ k,w ≤ 1000,0 ≤ n ≤ 109),第一个香蕉的成本,初始数量的美元他想要的香蕉。

输出 - 输出一个整数——士兵必须从他的朋友那里借的美元数量。如果他不用借钱,输出0。

测试用例输入 - 3 17 4 测试用例输出 - 13

不幸的是,他们只给出了 1 个示例测试用例。 CodeForces 链接 - https://codeforces.com/problemset/problem/546/A

我的代码 -

int main()
{
    int k,w,s;
    cin >> k >> n >> w;
    for(int i=1;i<=w;i++){
        s = s+i*k;
    }
    cout << s-n; //line 11
    return 0;
} 

CodeForces 编译器给出输出 = 543968169。 在第 11 行,该编译器给出错误 - “未初始化的值使用”。 我该如何解决这个问题?

解决方法

您在未初始化的情况下使用了变量 s 的值。

s 是非静态局部变量,所以它是默认初始化的,这意味着不会对 int 进行初始化。

在循环之前将其初始化为适当的值以解决问题。