65,211
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <vector>
using namespace std;
typedef vector<int> vi;
typedef vector<vi> vii;
vii input(const int m, const int n)
{
vii a;
a.resize(m);
for (int i=0; i<a.size(); ++i)
{
a[i].resize(n);
}
for (int i=0; i<a.size(); ++i)
{
for (int j=0; j<a[i].size(); ++j)
cin >> a[i][j];
}
return a;
}
void total(vii a)
{
int sum = 0;
for (int i=0; i<a.size(); i++)
{
for (int j=0; j<a[i].size(); j++)
{
sum += a[i][j];
}
cout << i+1 << ' : ' << sum << endl;
}
}
void average(vii a)
{
int sum = 0;
for (int i=0; i<a.size(); i++)
{
for (int j=0; j<a[i].size(); j++)
{
sum += a[j][i];
}
cout << "NO " << i << " average is " << double(sum)/2 << endl;
}
}
int main()
{
vii matrix = input(2,2);
total(matrix);
average(matrix);
return 0;
}
vii input(const int m, const int n)
{
vii a;
a.resize(m);
for (int i=0; i<a.size(); ++i)
{
a[i].resize(n);
}
for (int i=0; i<a.size(); ++i)
{
for (int j=0; j<a[i].size(); ++j)
cin >> a[i][j];
}
return a;//临时变量,生命周期随函数的结束而结束
}
建议改为
void input(const int m, const int n,vii &a)
{
a.resize(m);
for (int i=0; i<a.size(); ++i)
{
a[i].resize(n);
}
for (int i=0; i<a.size(); ++i)
{
for (int j=0; j<a[i].size(); ++j)
cin >> a[i][j];
}
}
...
int main()
{
vii matrix ;
input(2,2,matrix);
total(matrix);
average(matrix);
return 0;
}
void average(vii a)
{
int sum = 0;
for (int i=0; i<a.size(); i++)
{
for (int j=0; j<a[i].size(); j++)
{
sum += a[j][i];//==>sum += a[i][j];
}
cout << "NO " << i << " average is " << double(sum)/2 << endl;
}
}