Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 310
  • Last Modified:

loading a multidim array by user input

I am trying to setup a program that asks a user for 25 integers then puts them in a multidim array displays the aray table
the shows the sum of each row.

I have everything working except the for loops to get the array loaded correctly.  the table is supposed to be 5x5 I am just not sure on how to setup the test conditions to make the for loops work.

Here is my code.

//mike vlahos
//pgm1203 sum by row

#include <iostream>
#include <iomanip>
#include <fstream>

using namespace std;

const int MaxSize = 5;

void loadarray (int array[MaxSize][MaxSize],int MaxSize);
void printTable (ostream& report, int const number[MaxSize][MaxSize],int MaxSize);
int sumRows(int number[MaxSize]);


int main(){
      int number[MaxSize][MaxSize];
      cout << " Please enter 25 integers. (type the integer then press enter. " << endl;
      loadarray(number,MaxSize);
      ofstream report ("Pgm1203_vlahos_output.txt");
      if (!report){
            cerr << "unable to open output file!" << endl;
            return 1;
      }
      printTable(report,number,MaxSize);
      for (int n=0; n<MaxSize;n++){
            report <<" The sum of Row " << n+1 << " is: " << sumRows(number[n]) << endl;
      }
      return 0;
}

void loadarray (int number[MaxSize][MaxSize],int MaxSize){
for (int i=0, j=0; i<MaxSize && j<MaxSize; i++,j++){
      for (int q=0; q<MaxSize; q++){
            cin >> number[i][j];
            }
}
}

void printTable (ostream& report, int const number[MaxSize][MaxSize],int MaxSize){
      for (int j=0; j<MaxSize; j++){
            for (int i=0; i<MaxSize; i++){
                  report << "  " << setw(3) << number[j][i] << "    ";
            }
            report << endl;
      }
}

int sumRows(int number[MaxSize]){
      int i, sum = 0;
      for (i=0; i<MaxSize; i++){
            sum += number[i];
      }
      return sum;
}
0
vlahomt
Asked:
vlahomt
  • 4
  • 3
1 Solution
 
Harisha M GCommented:
Hi, try this:


void loadarray (int number[MaxSize][MaxSize],int MaxSize)
{
    for (int i=0;i<MaxSize; i++)
    {
        for (int j=0; j<MaxSize; j++)
        {
            cin >> number[i][j];
        }
    }
}




---
Harish
0
 
Harisha M GCommented:
You don't need those extra braces:

void loadarray (int number[MaxSize][MaxSize],int MaxSize)
{
    for (int i=0;i<MaxSize; i++)
        for (int j=0; j<MaxSize; j++)
            cin >> number[i][j];
}

0
 
vlahomtAuthor Commented:
I think I tried that and it stoped my data entry after only 5 numbers because at that point the 6 number would make j>MaxSize.

I will try that though
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
Harisha M GCommented:
vlahomt, try and don't hesitate to ask if you don't get it :)
0
 
vlahomtAuthor Commented:
that does not work.  it is like i said once you enter the 5th number j>MaxSize.

0
 
DrAskeCommented:
Hi valhomt ..

#include <iostream>
#include <iomanip>
#include <fstream>

using namespace std;

const int MaxSize = 5;

void loadarray (int array[MaxSize][MaxSize],int MaxSize);
void printTable (ostream& report, int const number[MaxSize][MaxSize],int MaxSize);
int sumRows(int number[MaxSize]);


int main(){
     int number[MaxSize][MaxSize];
     cout << " Please enter 25 integers. (type the integer then press enter. " << endl;
     loadarray(number,MaxSize);
     ofstream report ("Pgm1203_vlahos_output.txt");
     if (!report){
          cerr << "unable to open output file!" << endl;
          return 1;
     }
     printTable(report,number,MaxSize);
     for (int n=0; n<MaxSize;n++){
          report <<" The sum of Row " << n+1 << " is: " << sumRows(number[n]) << endl;
     }
     return 0;
}

void loadarray (int number[MaxSize][MaxSize],int MaxSize){
for (int i=0; i<MaxSize ; i++){
     for (int j=0; j<MaxSize; j++){
          cin >> number[i][j];
          }
}
}

void printTable (ostream& report, int const number[MaxSize][MaxSize],int MaxSize){
     for (int j=0; j<MaxSize; j++){
          for (int i=0; i<MaxSize; i++){
               report << "  " << setw(3) << number[j][i] << "    ";
          }
          report << endl;
     }
}

int sumRows(int number[MaxSize]){
     int i, sum = 0;
     for (i=0; i<MaxSize; i++){
          sum += number[i];
     }
     return sum;
}
----------------------------------------------
input :
1 2 3 4 5 6 ..... 25
-----------------------------------------------
output to File :
    1        2        3        4        5    
    6        7        8        9       10    
   11       12       13       14       15    
   16       17       18       19       20    
   21       22       23       24       25    
 The sum of Row 1 is: 15
 The sum of Row 2 is: 40
 The sum of Row 3 is: 65
 The sum of Row 4 is: 90
 The sum of Row 5 is: 115
------------------------------------------------

So where is your problem??
0
 
Harisha M GCommented:
>> that does not work.  it is like i said once you enter the 5th number j>MaxSize.

Use an ANSI compliant compiler such as MSVC or GCC..

I have tested it in GCC and it works perfectly.
0
 
vlahomtAuthor Commented:
I had a typo sorry.
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now