簡體   English   中英

C++ 隨機計數數組

[英]C++ array with random counts

我被困在某個地方(隨機數有問題)而且我知道,但找不到修復的地方......

必須使用兩個 void 函數; void randomNumbers(int numbers[][3], int rowSize), void randomCounts(int numbers[][3], int size, int counts[])

我無法放置圖像來顯示它應該如何以及看起來像 in.exe 文件,因為我今天剛注冊......希望這有效;(

預期結果:

//========================
//     7      6      5
//     2      1      1
//     6      7      2
//     9      3      3
//     8      1      1
//========================

//Ran. Number:       0    1    2    3    4    5    6    7    8    9
//Frequency(Counts): 0    4    2    2    0    1    2    2    1    1

我做了什么:

//========================
//     0      0      0
//     0      0      0
//     0      0      0
//     0      0      0
//     0      0      0
// ========================

// Ran. Number:       0    1    2    3    4    5    6    7    8    9
// Frequency(Counts): 001A148D

代碼:

#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;

const int COL = 3;
const int SIZE = 5;

void randomNumbers(int inumbers[][3], int rowSize) {
    int num = 0;
    for (int i = 0; i < 10; i++) {
        num = rand() % 10;
    }
}

void randomCounts(int inumbers[][3], int size, int counts[]) {
    for (int i = 0; i < 10; i++) {
        counts[i]++;
        cout << setw(5) << counts[i];
    }
}

int main(){

    int random[SIZE][COL] = {};
    srand((unsigned)time(NULL));

    cout << endl;
    cout << "==================" << endl;

    for (int i = 0; i < SIZE; i++) {
        for (int j = 0; j < COL; j++) {
            cout << setw(5) << random[i][j];
            if (j == COL - 1) {
                cout << endl;
            }
        }
    }

    cout << "==================" << endl;
    cout << endl;


    cout << "Ran. Number: " << setw(5) << "0" << setw(5) << "1" << setw(5) << "2" << setw(5) << "3" << setw(5) << "4" << setw(5) << "5" << setw(5) << "6" << setw(5) << "7" << setw(5) << "8" << setw(5) << "9" << endl;
    cout << "Frequency(Counts): " << randomCounts << endl;



    return 0;
}

好的,那你為什么得到0, 0, 0... 因為你從來沒有真正調用過你的函數。 你初始化你的數組:

int random[SIZE][COL] = {};

然后你在這里打印它:

cout << setw(5) << random[i][j];

在這兩者之間的任何地方,您都不會在此數組中設置任何內容。 當你開始調用你的函數時,你會發現它們不起作用,因為復制了輸入並做了一些未定義的行為。 當您對此進行更多調試時,請提出一個新問題。

我被困在某個地方(隨機數有問題),我知道,但找不到修復的地方......

必須使用兩個 void 函數; void randomNumbers(int numbers[][3], int rowSize), void randomCounts(int numbers[][3], int size, int counts[])

我今天剛注冊時,無法放置圖像來顯示它應該如何以及看起來像 in.exe 文件......希望這可行;(

預期結果:

//========================
//     7      6      5
//     2      1      1
//     6      7      2
//     9      3      3
//     8      1      1
//========================

//Ran. Number:       0    1    2    3    4    5    6    7    8    9
//Frequency(Counts): 0    4    2    2    0    1    2    2    1    1

我做了什么:

//========================
//     0      0      0
//     0      0      0
//     0      0      0
//     0      0      0
//     0      0      0
// ========================

// Ran. Number:       0    1    2    3    4    5    6    7    8    9
// Frequency(Counts): 001A148D

代碼:

#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;

const int COL = 3;
const int SIZE = 5;

void randomNumbers(int inumbers[][3], int rowSize) {
    int num = 0;
    for (int i = 0; i < 10; i++) {
        num = rand() % 10;
    }
}

void randomCounts(int inumbers[][3], int size, int counts[]) {
    for (int i = 0; i < 10; i++) {
        counts[i]++;
        cout << setw(5) << counts[i];
    }
}

int main(){

    int random[SIZE][COL] = {};
    srand((unsigned)time(NULL));

    cout << endl;
    cout << "==================" << endl;

    for (int i = 0; i < SIZE; i++) {
        for (int j = 0; j < COL; j++) {
            cout << setw(5) << random[i][j];
            if (j == COL - 1) {
                cout << endl;
            }
        }
    }

    cout << "==================" << endl;
    cout << endl;


    cout << "Ran. Number: " << setw(5) << "0" << setw(5) << "1" << setw(5) << "2" << setw(5) << "3" << setw(5) << "4" << setw(5) << "5" << setw(5) << "6" << setw(5) << "7" << setw(5) << "8" << setw(5) << "9" << endl;
    cout << "Frequency(Counts): " << randomCounts << endl;



    return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM