求助 死也要知道自己死在哪里

P1089 [NOIP2004 提高组] 津津的储蓄计划

您的代码呢?
by Wanderer_01 @ 2023-10-06 17:45:53


你把错误代码贴一下.
by wzhm54nr @ 2023-10-06 17:45:53


```cpp #include<bits/stdc++.h> using namespace std; int main() { int ys[12];//ys=预算 int c=0,s=0; int i;//c=存款,s=手里的零钱 for(i=1;i<13;i++) { cin>>ys[i];//判断 ,将i的每个值输入变量a(a有五个容器 s=s+300-ys[i];//每个月手中剩余的钱 if(s<0){cout<<-i;exit(0);}//如果钱不够结束程序 c=c+s/100*100;//存款 s=s%100;//每月可用钱 } c=c*1.2+s;//脱出循环, cout<<c<<endl; return 0; } ```
by Diciotto @ 2023-10-06 17:46:05


@[Wanderer_01](/user/544935) 贴了 抱歉
by Diciotto @ 2023-10-06 17:46:49


@[wzhm54nr](/user/1071328) 已经贴了,抱歉
by Diciotto @ 2023-10-06 17:47:12


@[Diciotto](/user/1089892) 你的代码在洛谷上能过
by Wanderer_01 @ 2023-10-06 17:51:39


for循环中访问了ys[i],当i=12时,会越界 可以把ys数组开到15试试
by wzhm54nr @ 2023-10-06 17:55:22


有一个小错误在于循环的起始值应为0而不是1。此外,在计算c的最终值时,将其减去s的值,因为s是剩余的零钱。代码:``` #include <iostream> using namespace std; int main() { int ys[12]; // ys=预算 int c = 0, s = 0; int i; // c=存款,s=手里的零钱 for (i = 0; i < 12; i++) // 将起始值从1改为0 { cin >> ys[i]; // 判断 ,将i的每个值输入变量a(a有五个容器 s = s + 300 - ys[i]; // 每个月手中剩余的钱 if (s < 0) { cout << -(i + 1); // 如果钱不够结束程序 exit(0); } c = c + s / 100 * 100; // 存款 s = s % 100; // 每月可用钱 } c = c * 1.2 + s; // 脱出循环, cout << c << endl; return 0; } ```
by o2thereal @ 2023-10-06 18:22:17


@[Wanderer_01](/user/544935) 好的,感谢,我去试试!
by Diciotto @ 2023-10-08 15:06:31


@[wzhm54nr](/user/1071328) 好的,真的非常感谢!我现在尝试改正!
by Diciotto @ 2023-10-08 15:08:24


| 下一页