下面是编码:)我还评论了一些部分,以便更容易理解代码的输出。
我有点想法,我需要使用“rand()%”的“if语句”,以确保程序知道我们只想计算1和-1的总和。例如,使用“rand()%2-1”可以帮助获得表中输出的1的总和。同样,我不确定这个想法是否有效。
所以程序应该输出类似“表中的1的数量是5,表中的-1的数量是3”,这是它第一次运行。然后当它第二次运行时,它可以输出类似“表中的1的数量为2,表中的数量为-1的数量为5”
对不起任何混淆,所有的帮助将非常感谢:) :)
#include<iostream>
#include<iomanip>
#include<ctime>
using namespace std;
int main() {
srand(time(0));
const int ROWS=3;
const int COLS=4;
int table[ROWS][COLS];
for (int i = 0; i < ROWS; i ++) {
for (int j = 0; j < COLS; j++) {
table[i][j] = rand()%3-1;
}
}
for (int i = 0; i < ROWS; i ++) {
for (int j = 0; j < COLS; j++)
cout << setw(3) << table[i][j];
cout << endl;
}
bool checkTable [ROWS][COLS];
for (int i = 0; i < ROWS; i ++) {
for (int j = 0; j < COLS; j++) {
if (table[i][j] !=0) {
checkTable[i][j] = true;
}
else{
checkTable[i][j] = false;
}
//The output in the line below is the final line outputted by the
console. This prints out "1" if there is a value in the index within
the table provided above (the value is represented by 1 or -1), and
prints out "0" if there is no value in the index (represented by 0)
cout << " " << checkTable[i][j];
}
}
return 0;
}
答案 0 :(得分:1)
[...]例如使用“rand()%2-1”可以帮助获得1的总和 表中输出。
我真的不明白你的意思。计数和随机性不能很好地融合在一起。我的意思是你当然可以用随机数填充矩阵,然后做一些计数,但rand()
不会对计算有任何帮助。
你需要一些简单的东西:
int main() {
srand(time(0));
const int ROWS=3;
const int COLS=4;
int table[ROWS][COLS];
for (int i = 0; i < ROWS; i ++) {
for (int j = 0; j < COLS; j++) {
table[i][j] = rand()%3-1;
}
}
unsigned ones_counter = 0;
for (int i = 0; i < ROWS; i ++) {
for (int j = 0; j < COLS; j++) { // dont forget the bracket
cout << setw(3) << table[i][j];
if (table[i][j] == 1) { ones_counter++;} // <- this is counting
}
cout << endl;
}
std::cout << "number of 1s in the table : " << ones_counter << "\n";
....