This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center。
6年前关闭。
我用c ++编写此程序。
我想建立一个具有随机行和3列的表。编译时没有错误,但是我执行程序不执行任何操作,也不编写任何内容。您能帮我找到我的错误吗?
谢谢
我遇到另一个问题,它为所有列写入相同的值。所以我需要在循环中更改一些内容,对吗?
另外,您的意思是写相同的条目三次,这是什么目的?同样,您也输出了三次相同的条目。我修改为仅输出一次:
另外,如果您的代码中有
6年前关闭。
我用c ++编写此程序。
我想建立一个具有随机行和3列的表。编译时没有错误,但是我执行程序不执行任何操作,也不编写任何内容。您能帮我找到我的错误吗?
谢谢
int main(){
srand(time(0));
int project = (rand() % 5) + 1 ;
std::cout << "The Number is " << project << "." << std::endl;
vector<vector<int> > P(project, vector<int>(3));
for(int i = 0; i <= P.size(); ++i){
for(int j = 0;j <= P[i].size();++j){
P[i][j] = (rand() % 50)+10;
P[i][j] = (rand() % 2)+1;
P[i][j] = (rand() % 50)+1;
}
}
for(int a = 0;a <= P.size();++a){
for(int j = 0;j <= P[a].size();++j){
std::cout << "Project "<< a <<" :"<< P[a][j] ;
std::cout << P[a][j] <<" , ";
std::cout << P[a][j] <<" ."<< std::endl;
}
}
我遇到另一个问题,它为所有列写入相同的值。所以我需要在循环中更改一些内容,对吗?
最佳答案
有几个问题,您应该在循环中使用size_t
而不是int
,并且您在循环中要经过一个循环。例如,它应该是i < P.size()
而不是i <= P.size()
:
for(size_t i = 0; i < P.size(); ++i)
{
for(size_t j = 0;j < P[i].size();++j)
{
P[i][j] = (rand() % 50)+10;
P[i][j] = (rand() % 2)+1;
P[i][j] = (rand() % 50)+1;
}
}
另外,您的意思是写相同的条目三次,这是什么目的?同样,您也输出了三次相同的条目。我修改为仅输出一次:
for(size_t a = 0;a < P.size();++a)
{
for(size_t j = 0;j < P[a].size();++j)
{
std::cout << "Project "<< a <<" :"<< P[a][j] << std::endl;
}
}
另外,如果您的代码中有
using namespace std
,我也建议您不要这样做。只需显式使用std::vector
。