根据用户输入计算数组中的可分割数字

Counting divisible numbers in array based on user input

本文关键字:可分割 数字 数组 计算 用户 输入      更新时间:2023-10-16

我刚刚开始C++这是我遇到的问题。我需要编写一个程序来创建 2d 数组,然后允许用户输入一个数字,从那里我需要计数并列出该数组中可被用户输入整除的所有数字。我还没有开始代码的列表部分,但我遇到的问题是我尝试使用的计数函数被零除以零,所以它不会运行。这是我到目前为止所拥有的,任何帮助将不胜感激

void fillArray(int ar [][10], int size);
void printArray(int ar [][10], int size);
int getDivisible (int a [][10], int size, int num);

int main()
{
    srand((unsigned int) time(0));
    int ar[10][10];
    int count = 0;
    fillArray(ar, 10);
    printArray(ar, 10);
    int num;
    cout << "Enter a number to divide by" << endl;
    cin >> num;
    getDivisible(ar, 10, count);
    cout << " There are " << count << " evenly divisible numbers. They are : " << endl;
    cout << endl;
    return 0;
}
void fillArray(int ar [][10], int size)
{
    for (int row = 0; row < size; row++)
    {
        for (int col = 0; col < 10; col++)
        {
            ar[row][col] = rand() % 101;
        }
    }
}
void printArray(int ar [][10], int size)
{
    for (int row = 0; row < size; row++)
    {
        for (int col = 0; col < 10; col++)
        {
            cout << ar[row][col] << "t";
        }
        cout << endl;
    }
}
int getDivisible(int ar [][10], int size, int num )
{
    int count = 0;
    for (int row = 0; row < size; row++)
    {
        for (int col = 0; col < 10; col++)
        {
            if ((ar[row][col]) % num == 0)
                count++;
        }
    }
    return count;
}
getDivisible(ar, 10, count);

你不是故意要把count传进去吧?

因为当你到达这里时,在getDivisible函数中:

if ((ar[row][col]) % num == 0)

这是一个问题,因为getDivisible中的nummain count,这是0