改完的AC代码
```cpp
#include <stdio.h>
int arr1[15], arr2[15];
int main()
{
int a, h, flag = 0, m;
int rest = 0, sum = 0;
for (int i = 0; i < 12; i++)
{
scanf("%d\n", &a);
arr1[i] = a;
}
for (int i = 0; i < 12; i++)
{
m = rest + 300 - arr1[i];
if (m < 0)
{
flag = 1;
h = i;
break;
}
else
{
if (m >= 100)
{
arr2[i] = (m / 100) * 100;
rest = m - arr2[i];
}
else
{
arr2[i] == 0;
rest = m;
}
}
}
if (flag == 1)
{
printf("%d", -(h + 1));
}
else if (flag == 0)
{
for (int i = 0; i < 12; i++)
{
sum = sum + arr2[i];
}
printf("%d", 12 * sum / 10 + rest);
}
return 0;
}
```
我真服了我竟然调你代码调了20min
说说你的错误
1.数组越界,建议所有数组开全局,全局变量自带初始化(都默认等于零)
2.谁教你这样写循环的,循环变量最好用局部,否则容易导致后面循环出错(PS:如果需要循环变量可以用其他变量保存啊,比如我这里就用h)
3.数组范围最好开题目的最大值+5,防止出现意想不到的越界
4.输出的%d是整型,1.2*sum时他已经变为浮点变量了,所以输出会出错我这里改成了12/10
其他小问题就不说了,毕竟像是初学者(累死我了)
by sunyuyang @ 2022-10-24 08:44:47
@[sunyuyang](/user/581411) 太感谢了
by TBA3D @ 2022-10-24 11:19:12
@[sunyuyang](/user/581411) 新手上路,谢谢指点
by TBA3D @ 2022-10-24 11:23:30
```
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a[13];
int ans=0,last=0;
for(int i=0;i<12;i++)
{
cin>>a[i];
last+=300;
last-=a[i];
if(last<0)
{
cout<<"-"<<i+1;
return 0;
}
ans+=last/100;
last%=100;
}
cout<<last+ans*120;
return 0;
}
by sunruishe @ 2022-10-28 22:23:29