通过示例输入和输出匹配,我已经收到了这个绑定错误。我尝试了几种方法来解决这个错误,但我做不到。请帮助我克服这个问题。还有,请解释一下原因?造成这一错误的主要原因是什么?我的代码如下:
#include <iostream>
using namespace std;
int main(){
int a[4];
for(int i=1; i<=4; i++){
cin >> a[i];
}
string s;
cin >> s;
int sum = 0;
for(int i =0; i<s.size(); i++){
if(s[i]=='1'){
sum=sum+a[1];
}
else if(s[i]=='2'){
sum+=a[2];
}
else if(s[i]=='3'){
sum+=a[3];
}
else if(s[i]=='4'){
sum+=a[4];
}
}
cout << sum << endl;
}样本输入:
1 2 3 4
123214输出:
13发布于 2022-01-22 07:22:59
发布于 2022-01-22 07:29:36
首先,这是不对的
int a[4];
for(int i=1; i<=4; i++){
cin >> a[i];
}C++中的数组是从0索引的,所以如果您想拥有a[1] = 1,应该是索引数组。
int a[5];
for(int i = 0; i < 5; i++){
cin >> a[i];
}旁注。你不需要“查找数组”。要将数字之和,只需:
sum += (s[i] - '0');发布于 2022-01-22 07:24:51
int a[4];
for(int i=1; i<=4; i++){a的变量声明将索引0分配给3(4个元素总计),但是您正在尝试通过i访问0到4
https://stackoverflow.com/questions/70810775
复制相似问题