如何计算表中-1的总数和1的总数? (C ++)

时间:2017-08-17 12:32:42

标签: c++

下面是编码:)我还评论了一些部分,以便更容易理解代码的输出。

我有点想法,我需要使用“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;
 }

1 个答案:

答案 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";
....