現在は「新版明解c++」にてc++の勉強をしているのですが、どうしてもできない問題がでてきたので、
質問さしていただきたいと思います。
問題
n行5列のint型2次元配列aの各行の最大値を、要素数nの1次元配列mに格納する関数maxlineを作成せよ。
void maxline(int a[/url][5],int m[/url],int n);
たとえば、aに受け取った3行5列の構成要素が{{1,2,5,3,8},{6,7,4,2,3},{3,0,5,9,1}}であれば、mに{8,7,9}を格納せよ。
という問題です。以下開発環境と自分の作ったプログラムです。
OS:Windows XP
コンパイラ:Borand C++
#include<iostream>
using namespace std;
void maxline(int a[/url][5],int m[/url],int n);
int main(void)
{
int n;
int a[/url][5]={0};
int m[/url]={0};
cout << "行数:"; cin >> n;
for(int i=0;i<n;i++){
for(int j=0;j<5;j++){
cout << "a[" << i << "][" << j << "] = ";
cin >> a[j];
}
}
maxline(a,m,n);
for(int i=0;i<n;i++){
cout << "m[" << i << "] = " << m << '\n';
}
}
void maxline(int a[/url][5],int m[/url],int n)
{
int max;
for(int i=0;i<n;i++){
max=a[0];
for(int j=1;j<5;j++){
if(max<a[j]){
max=a[j];
}
}
m=max;
}
}プログラムは実行できるのですが、思ったとおりに動きません。
最初nに3を代入してもなぜか、ループが5回になってしまいます。
何度か見直したのですが、どうしても分かりません。
どうかご協力お願いします。