调用函数不显示结果

时间:2017-05-19 10:00:38

标签: c++ function loops functional-programming

我以下列方式使用随机数创建array 5 x 5

#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;

int main () {
    int a[5][5];
    int randomNumber;
    srand (time(NULL));
    // output each array element's value                      
    for ( int i = 0; i < 5; i++ ) {
          cout << endl;
        for ( int j = 0; j < 5; j++ ) {
             a[i][j] = randomNumber;
             randomNumber = rand() %100 + 1;
             cout << a[i][j] << "  ";
        }
       cout << endl;
    }
  return 0;
} 

其输出低于5 x 5 Array。enter image description here

但是当我将循环包装到函数中然后调用它时。然后它没有显示任何结果。

#include <iostream>
#include <stdlib.h> 
#include <time.h>
using namespace std;

int main () {

   // output each array element's value   
   cout <<"Array Results are.....";
   int PopulateArray();                   

  return 0;
}

int PopulateArray(){
int a[5][5];
int randomNumber;
srand (time(NULL));

for ( int i = 0; i < 5; i++ ) {

       cout << endl;

    for ( int j = 0; j < 5; j++ ) {
        a[i][j] = randomNumber;
        randomNumber = rand() %100 + 1;
        cout << a[i][j] << "  ";
      }
    cout << endl;
  }
}

现在结果就像这样

enter image description here

问题

为什么我将loop包裹在function中时未显示结果?

2 个答案:

答案 0 :(得分:0)

您的main函数从不致电PopulateArray。第int PopulateArray();行声明了它不调用它的函数。

答案 1 :(得分:0)

您错误地调用了该函数。代码中的这一行:

int PopulateArray(); 

并没有真正调用该函数,只是声明它。所以程序所做的就是将文本打印到cout,然后它声明一个函数而不执行它,然后退出。正确的打电话方式是:

PopulateArray(); 

BTW没有理由让这个函数返回一个int,因为没有从它返回任何整数。