这段代码适用于所有样本,但在完成所有样本之后,就会出现问题。我不知道会发生什么然后程序就崩溃了。这段代码有问题吗?当我通常使用字符串数组时,我遇到了这个问题,这会是问题吗?
#include <iostream>
#include <vector>
#include <utility>
#include <algorithm>
#include <bits/stdc++.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
long long t,n;
int a[1000];
string str[1000];
int main()
{
cin>>t;
for(int r=1;r<=t;r++){
cin>>n;
int maxi=0;
for(int i=1;i<=n;i++){
cin>>a[i];
if(a[i]>maxi)maxi=a[i];
};
//input first value
maxi=maxi+3;
for(int r1=0;r1<maxi;r1++){
str[1][r1]=(rand()%26)+'a';
}
for(int i=0;i<maxi;i++){
cout<<str[1][i];
}
cout<<endl;
//
for(int k=2;k<=(n+1);k++){
int w;
for(w=0 ; w<=a[k-1];w++){
str[k][w]=str[k-1][w];
};
for(int l=w-1;l<maxi;l++){
str[k][l]=(rand()%26)+'a';
};
for(int i=0;i<maxi;i++){
cout<<str[k][i];
}
cout<<endl;
}
}
return 0;
}发布于 2020-07-25 00:16:56
您正在使用字符串的元素,而没有分配它们。
通过插入来分配元素
for(int i=1;i<=(n+1);i++){
str[i].resize(maxi);
}紧接着
maxi=maxi+3;https://stackoverflow.com/questions/63077400
复制相似问题