C++ 我的c++;编译器正在提供正确的输出,但c++;是否给出了错误的输出
问题-一名士兵想在商店里买香蕉。他必须为第一根香蕉支付k美元,为第二根香蕉支付2k美元,依此类推(换句话说,他必须为第i根香蕉支付i·k美元) 他有一千美元。为了买香蕉,他必须向他的朋友士兵借多少美元 输入-第一行包含三个正整数k, N w(1) ≤ K W ≤ 1000, 0 ≤ N ≤ 第一根香蕉的价格,士兵最初拥有的美元数量和他想要的香蕉数量 输出-输出一个整数-士兵必须向朋友借的美元金额。如果他不需要借钱,输出0 测试用例输入-3 17 4 测试用例输出-13 不幸的是,他们只给出了一个示例测试用例。 联合部队链接- 我的代码-C++ 我的c++;编译器正在提供正确的输出,但c++;是否给出了错误的输出,c++,for-loop,math,implementation,brute-force,C++,For Loop,Math,Implementation,Brute Force,问题-一名士兵想在商店里买香蕉。他必须为第一根香蕉支付k美元,为第二根香蕉支付2k美元,依此类推(换句话说,他必须为第i根香蕉支付i·k美元) 他有一千美元。为了买香蕉,他必须向他的朋友士兵借多少美元 输入-第一行包含三个正整数k, N w(1) ≤ K W ≤ 1000, 0 ≤ N ≤ 第一根香蕉的价格,士兵最初拥有的美元数量和他想要的香蕉数量 输出-输出一个整数-士兵必须向朋友借的美元金额。如果他不需要借钱,输出0 测试用例输入-3 17 4 测试用例输出-13 不幸的是,他们只给
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;
}
intmain()
{
int k,n,w,s;
cin>>k>>n>>w;
对于(int i=1;i您使用了变量s
的值,但未对其进行初始化
s
是非静态局部变量,因此它是默认初始化的,这意味着不会对int
执行初始化
在循环之前将其初始化为正确的值以解决问题。您使用了变量s
的值,但未对其进行初始化
s
是非静态局部变量,因此它是默认初始化的,这意味着不会对int
执行初始化
在循环之前将其初始化为正确的值以解决问题。您忘记初始化s
。但是我在第3行说的是int s,您的意思是要修复给出错误输出“第11行”的编译器吗?说它是int
,而给int
一个已知值是两回事。[ProTip]如果你想让一个变量有一个起始值,那么在声明它时就给它。假设它有一个期望值会导致很多错误。@ProgrammerGuy当两个编译器给出不同的结果时,总是从寻找未定义的行为开始。在你的代码中,从未初始化的s
读取是UB。你忘记了初始化s
。但是我在第3行说int s,你的意思是要修复给出错误输出“第11行”的编译器吗?说它是一个int
,给它一个已知值是两回事。[ProTip]如果你想让一个变量有一个起始值,那么在声明它时给它一个。假设它有一个期望值会导致很多错误。@ProgrammerGuy当两个编译器给出不同的结果时,总是从寻找未定义的行为开始。在你的代码中,从未初始化的s
读取是UB。例如adds=0代码>在您的cin命令之前。是的,我收到了,谢谢。例如,在您的cin命令之前添加s=0;
。是的,我收到了,谢谢。