还有一个问题就是,在编译器粘贴输入的时候我还没按回车,直接就输出了,请问是怎么回事?
by Evolution333 @ 2023-10-18 15:58:29
稍等,我看看
by yhliuhao @ 2023-10-18 16:20:34
@[Evolution333](/user/1128181)
因为
```
else if(remain-n<0){
cout<<remain-n;
return 0;
}
```
by shengyeqi @ 2023-10-18 16:21:03
```
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
int n=0;
int remain=0,deposit=0;
for(int i=1;i<=12;i++){
cin>>n;
remain+=300-n;
if(remain<0){
cout<<"-"<<i;
return 0;
}else{
deposit+=remain/100;
remain%=100;
}
}
cout<<deposit*120+remain;
return 0;
}
```
by yhliuhao @ 2023-10-18 16:28:21
@[Evolution333](/user/1128181)
因为你一边输入一遍处理,当发现不符合题意时就自动跳出了(如楼下大佬所说)
也有可能是编译器的问题,~~(我的C++也这样)~~,可以用重定向测试或用洛谷在线IDE,要不然就重新下一个编译器
by yhliuhao @ 2023-10-18 16:32:33
@[Evolution333](/user/1128181)
```
#include <iostream>
using namespace std;
int main() {
const int income = 300;
int n;
int remain = 0;
int deposit = 0;
int month_with_deficit = -1;
for (int i = 1; i <= 12; i++) {
cin >> n;
remain += income - n;
if (remain < 0) {
month_with_deficit = i;
break; // 余额不足时退出循环
} else {
deposit += remain / 100;
remain %= 100;
}
}
if (month_with_deficit != -1) {
cout << -month_with_deficit;
} else {
int final_balance = deposit * 120 + remain;
cout << final_balance;
}
return 0;
}
```
by shengyeqi @ 2023-10-18 16:32:43