以下代码从不在两个整数数组seqs
和seq_sizes
中放置任何内容,但在运行时暂停和调试时,所有其他变量都包含预期内容。
为什么这些数组仍然是空的,尽管有人要求将这些数据放入其中?
#include <iostream>
using namespace std;
int main(){
int n,q;
cout << "n q:" << endl;
cin>>n>>q;
int m = 1000000;
int seqs[m];
int seq_sizes[n];
cout << "seqs:" << endl;
for (auto i=0;i<n;++i){
cout << i << ":" << endl;
int take;
cin>>take;
seq_sizes[i]=take;
for (auto j=0;j<seq_sizes[i];++j){
int take2;
cin>>take2;
seqs[i+j]=take2;
}
}
cout << "queries:" << endl;
for (auto i=0;i<q;++i){
int seq,index;
cin>>seq>>index;
int tally=0;
for (auto j=0;j<seq;++j){
tally+=seq_sizes[j];
}
cout<<seqs[tally+index]<<endl;
}
return 0;
}
示例输入:
2 2 3 1 5 4 5 1 2 8 9 3 0 1 1 3
答案 0 :(得分:1)
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
</style>
检查此循环的功能(考虑您的输入) 它设置seq_sizes [0] = 3一次,然后重新初始化为1。 同样发生一次又一次导致错误。 考虑在行seqs [i + j] = take2;
中改变i + j