我的 c++ 编译器给出了正确的输出,但是 c++ 的 codeforces 编译器给出了错误的输出
My c++ compiler is giving the correct output but the codeforces compiler for c++ is giving a wrong output
问题 - 一个士兵想在商店里买 w 根香蕉。他必须为第一个香蕉支付 k 美元,为第二个香蕉支付 2k 美元,依此类推(换句话说,他必须为第 i 个香蕉支付 i·k 美元)。
他有n块钱。他要向他的朋友士兵借多少钱才能买w香蕉?
输入 - 第一行包含三个正整数 k, n,⟩w (1 ≤ k,⟩w ≤⟩⟩1000, 0 ≤ n ≤ 109),第一个香蕉的成本,士兵拥有的美元初始数量和他想要的香蕉数量。
输出 - 输出一个整数——士兵必须向他的朋友借钱的金额。如果他不用借钱,输出0。
测试用例输入 - 3 17 4
测试用例输出 - 13
不幸的是,他们只给出了 1 个示例测试用例。
CodeForces link - https://codeforces.com/problemset/problem/546/A
我的代码-
int main()
{
int k,n,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 行,该编译器给出错误 - 'uninitialized value usage'。
我该如何解决这个问题?
您使用了变量 s
的值,但未对其进行初始化。
s
是非静态局部变量,默认初始化,即int
.
不会被初始化
在循环之前将其初始化为正确的值以解决问题。
问题 - 一个士兵想在商店里买 w 根香蕉。他必须为第一个香蕉支付 k 美元,为第二个香蕉支付 2k 美元,依此类推(换句话说,他必须为第 i 个香蕉支付 i·k 美元)。
他有n块钱。他要向他的朋友士兵借多少钱才能买w香蕉?
输入 - 第一行包含三个正整数 k, n,⟩w (1 ≤ k,⟩w ≤⟩⟩1000, 0 ≤ n ≤ 109),第一个香蕉的成本,士兵拥有的美元初始数量和他想要的香蕉数量。
输出 - 输出一个整数——士兵必须向他的朋友借钱的金额。如果他不用借钱,输出0。
测试用例输入 - 3 17 4 测试用例输出 - 13
不幸的是,他们只给出了 1 个示例测试用例。 CodeForces link - https://codeforces.com/problemset/problem/546/A
我的代码-
int main()
{
int k,n,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 行,该编译器给出错误 - 'uninitialized value usage'。 我该如何解决这个问题?
您使用了变量 s
的值,但未对其进行初始化。
s
是非静态局部变量,默认初始化,即int
.
在循环之前将其初始化为正确的值以解决问题。