关于C++数组问题

就是有一个二维数组和一个公式y=ax+b。公式中的a,b对应数组不同的列,值不同,相同的列值相同。在这里a,b还要保证自己输入,不是一个定值。如果这个数组有4列,我就要输... 就是有一个二维数组和一个公式y=ax+b。公式中的a,b对应数组不同的列,值不同,相同的列值相同。在这里a,b还要保证自己输入,不是一个定值。如果这个数组有4列,我就要输入4组a,b的值。公式系数确定好后,就要把数组每行每个值带到公式中进行计算,公式中x对应数组的值,把每一行的数都带入到想应得公式中计算后,最后将的到的结果进行相加,得出总和,有多少行就有多少个总和,更深一步就是找出总和最小的值和他对应的那行数组。比如数组b[3][3]第一行:第一行a1*b[0][0]+b1+a2*b[0][1]+b+a3*b[0][2]+b得出了它的总和sum1。第二行a1*b[1][0]+b1+a2*b[1][1]+b+a3*b[1][2]+b得出总和sum2.a1*b[2][0]+b1+a2*b[2][1]+b+a3*b[2][2]+b得出总和sum3.比较这三个总和,找到最小的,输出最小值和相应的行。 展开
 我来答
teddy_0416
2010-07-13 · TA获得超过556个赞
知道小有建树答主
回答量:335
采纳率:0%
帮助的人:340万
展开全部
/*
基本理解楼主的意思了
写了代码 楼主试试 看好用不
有啥问题再说
运行后按提示来就行
*/

#include <iostream>
#include <vector>

using namespace std;

int main()
{
int M,N;
cout<<"输入数组的行数M,列数N:"<<endl;
cin>>M>>N;
vector<int> a(N),b(N); // 一个存储a,b值的向量
vector<vector<int> > v(M,vector<int>(N)); //被计算的二维数组
vector<int> sum(M,0); //存储每行的和

// 二维数组输入
cout<<endl<<endl<<"输入"<<M<<"行"<<N<<"列的数组元素:"<<endl;
for(int i=0; i<M; i++)
for(int j=0; j<N; j++)
{
cin>>v[i][j];
}

// N组 a,b 的输入
cout<<endl<<endl<<"输入"<<N<<"组a,b值:"<<endl;
for(int i=0; i<N; i++)
cin>>a[i]>>b[i];

cout<<endl<<endl;
// 计算 sum
for(int i=0; i<M; i++)
{
for(int j=0; j<N; j++)
sum[i] += a[j]*v[i][j] + b[j];

cout<<"第"<<i+1<<"行元素经运算后和为:"
<<sum[i]<<endl;
// 以上两行只是为了展示下 计算的 sum值
// 验证计算是否正确 不需要可以删除
}

// 找到和最小的行数
int k=0;
for(int i=0; i<M; i++)
if(sum[k]>sum[i])
k=i;

//最终结果的输出
cout<<endl<<"和最小的行的元素为:\n";
for(int j=0; j<N; j++)
cout<<v[k][j]<<" ";
cout<<endl;

return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式