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

时间:2013-11-15 23:22:36

标签: c++ multidimensional-array

我刚刚开始使用C ++,这就是我遇到的问题。我需要编写一个程序来创建一个二维数组,然后允许用户输入一个数字,从那里我需要计算并列出该数组中可被用户输入整除的所有数字。我还没有启动代码的列表部分,但我遇到的问题是我尝试使用的计数功能除以零,因此它不会运行。这是我到目前为止所提供的任何帮助将非常感谢

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;
}

1 个答案:

答案 0 :(得分:3)

getDivisible(ar, 10, count);

你不是故意在那里传递count,是吗?

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

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

这是一个问题,因为num中的getDivisible来自count main0