Thuy Nguyen
Thuy Nguyen

Reputation: 11

C++ function and array homework

Create a function that prints the array to the screen as a table with the appropriate rows and columns. Use setw() to ensure the numbers have enough room. You may assume the numbers are no more than 3 digits each. Include the row and column labels.

In main, ask the user to supply a row and column and a value (no more than 3 digits), then put the value into the array at that row and column. Print the result and ask the user for another row, column and value. Repeat until the user is finished.

Once finished, compute and print the total of the values in the array.

#include <iostream>
    #include <iomanip>

    using namespace std;

    const int ROWS= 4;
    const int COLS = 3;
    const int WIDTH = 4;
    const char YES = 'y';
    int total = 0;

    void print(int arr[ROWS][COLS]);

    int main()
    {
      int arr[ROWS][COLS];
      char ans = YES;
      int val;

      for (int r = 0; r < ROWS; r++){
       for (int c = 0; c < COLS; c++)
         arr[r][c] = 0;}
    while (tolower(ans) == YES){
      int row = -1;
      int col = -1;
      cout << "Row? ";
      cin >> row;
      cout << "Columns? ";
      cin >> col;

      while (row < 0 || row >=ROWS){
        cout << "Only value under " << ROWS << " is accepted, try again: ";
        cin >> row;
     }
      while (col < 0 || col >= COLS){
        cout << "Only value under " << COLS << "is accepted, try again: ";
        cin >> col;
     }

     cout << "Value? ";
     cin >> val;
     arr[row][col] = val;
     print(arr);

     cout << "Again (y/n)? ";
     cin >> ans;
     }

     for (int r = 0; r < ROWS; r++){
       for (int c = 0; c < COLS; c++){
         total += arr[r][c];
       }
     }
     cout << "Sum of all values is " << total << endl;

    // Print array with labels
    // get input from user
    // print array again - repeat until user wishes to quit

    return 0;
    }

    void print (const int arr[ROWS][COLS])
    {
        cout << endl << endl;
        for (int i = 0 ; i < COLS; i++)
        cout << setw(WIDTH) << i;
        cout << endl;
      for (int r = 0; r < ROWS; r++)
        cout << setw(WIDTH) << r << "|";
    for (int r = 0; r < ROWS; r++)
        for (int c = 0; c< COLS; c++)
          cout << setw(WIDTH) << arr[r][c];
          cout << endl << endl;
    }

I dont know where I did wrong on this one but when I complie, I got the LD return 1 exit status error, Can you please help?

Upvotes: 0

Views: 137

Answers (2)

shauryachats
shauryachats

Reputation: 10385

Change the declaration of your print() function.

 void print(int arr[ROWS][COLS]);

to

 void print(const int arr[ROWS][COLS]);

Upvotes: 0

sithereal
sithereal

Reputation: 1686

The definition and the declaration of your print function are different.

Upvotes: 1

Related Questions