所以基本上我試圖創建一個回圈,用亂數填充矩陣。我需要讓每一列都有一個不同的范圍,它是獨一無二的。
//Variables
int lsx = 3;
int lsy = 10;
int lust[lsy][lsx];
int i = 0;
int l = 0;
int shpp = 7;
//List setup
for (i = 0; i < lsy; i )
{
for (l = 0; l < lsx; l )
{
lust[i][l] = 0;
}
}
while (true)
{
//List generator
for (i = 0; i < lsy; i )
{
for (l = 0; l < lsx; l )
{
//Column 1
if (i == 0)
{
lust[i][l] = rand() % flx;
cout << lust[i][l] << '\n';
}
//Column 2
if (i == 1)
{
lust[i][l] = rand() % fly;
cout << lust[i][l] << '\n';
}
//Column 3
if (i == 2)
{
lust[i][l] = rand() % shpp;
cout << lust[i][l] << '\n';
}
}
cout << "Endline reached! \n \n";
}
for (i = 0; i < lsy; i )
{
for (l = 0; l < lsx; l )
{
cout << lust[i][l] << " ";
}
cout << "\n";
}
}
}
這僅生成 3 行。有沒有人對為什么會發生這種情況有任何想法?我嘗試改變一些東西,但只得到了更奇怪的結果,不會完全填滿陣列這就是我嘗試運行時程式顯示的內容
uj5u.com熱心網友回復:
for (l = 0; l < lsx; l )
{
Column 1
if (i == 0)
}
lust[i][l] = rand() % flx;
cout << lust[i][l] << '\n';
}
Column 2
if (i == 1)
}
lust[i][l] = rand() % fly;
cout << lust[i][l] << '\n';
}
Column 3
if (i == 2)
{
lust[i][l] = rand() % shpp;
cout << lust[i][l] << '\n';
}
}
cout << "Endline reached! \n \n";
您正在使用 i (行迭代器)來評估您將要填充的內容。這意味著您的代碼將只關注第 0、1 和 2 行。相反,將 i 移至 l - 您的列迭代器。它應該作業。
另外,請考慮洗掉 while true 回圈。它不僅是多余的,而且考慮到沒有中斷條件,它也非常危險 - 在這種情況下它是安全的,因為你可以關閉它,但作為一個很好的做法,除非你不能,否則最好不要使用 while(true)將您的中斷條件寫為布爾運算式
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/362771.html
標籤:C for循环 if 语句 多维数组 while 循环
下一篇:如果單元格值的最后2位大于和小于
