다음 헤더를 사용하여 행렬에서 지정된 열의 모든 요소의 합계를 구하는 함수를 작성하여라.
const in SIZE = 4; double sumColumn(const double m[][SIZE], int rowSize, int columnIndex);
3 X 4 행렬을 읽고 각 열의 합계를 출력하는 테스트 프로그램을 작성하여라.
(문제 출처 - C++로 시작하는 객체지향 프로그래밍 8.1)
#include <iostream>
using namespace std;
const int SIZE = 4;
double sumColumn(const double m[][SIZE], int rowSize, int columnIndex);
int main()
{
double matrix[3][4];
cout << "Enter a 3-by-4 matrix row by row: ";
for (int i = 0; i < 3; i++)
for (int j = 0; j < 4; j++)
{
cin >> matrix[i][j];
sumColumn(matrix, i, j); // 배열 전체를 다시 돌리면 안 됨
}
}
double sumColumn(const double m[][SIZE], int rowSize, int columnIndex)
{
double sum = 0;
for (int C = 0; C < SIZE; C++)
for (int R = 0; R < rowSize; R++)
{
sum += m[R][C]; //
cout << "Sum of the elements at column " << C <<
" is " << sum << endl;
} // 열의 합이기 때문에 중첩 for문을 쓰지 않고 rowSize를 전송해야함
}
#include <iostream>
using namespace std;
const int SIZE = 4;
double sumColumn(const double m[][SIZE], int rowSize, int columnIndex);
int main()
{
double matrix[3][4];
cout << "Enter a 3-by-4 matrix row by row: " << endl;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
cin >> matrix[i][j];
}
}
for (int j = 0; j < 4; j++)
cout << "Sum of the elements at column " << j <<
" is " << sumColumn(matrix, 3, j) << endl;
// 따로 반복문을 줘서 j번째 열을 변수로 전달하고
// 그 열의 합을 행만큼 더해서 들어오게 함
return 0;
}
double sumColumn(const double m[][SIZE], int rowSize, int columnIndex)
{
double sum = 0;
for (int R = 0; R < rowSize; R++)
{
sum += m[R][columnIndex]; // 각 열의 합이니까 행만큼만 돌리기
}
return sum;
}