# include<iostream>
using namespace std;
int const rows=3; //rows are kept constant
int const cols=3; //columns are kept constant
void display(int arr[][cols],int rows,int cols); //function prototype
int rowsum(int arr[][cols],int rows,int cols); //function prototype
int main()
{
int z [rows][cols]; //2-D array declaration
int r,c;
for(r=0;r<rows;r++)
{
for(c=0;c<cols;c++)
{
cout<<"Enter elements of array["<<r<<"]["<<c<<"]:";
cin>>z[r][c];
}
}
display(z,rows,cols); //Function call
rowsum(z,rows,cols); //Function call
return 0;
}
void display(int arr[][cols],int rows,int cols) //function to display input
{
int r,c;
for(r=0;r<rows;r++)
{
for(c=0;c<cols;c++)
{
cout<<"Elements of array["<<r<<"]["<<c<<"]="<<arr[r][c]<<endl;
}
}
}
int rowsum(int arr[][cols],int rows,int cols) //Function to perform rowsum
{
int c,sum=0,r=0;
for(c=0;c<cols;c++)
{
sum=sum+arr[r][c];
cout<<"the sum of rows is:"<<sum<<endl;
}
return sum;
}
上面是一个使用二维数组的C ++代码。它接受用户的输入,并使用显示功能显示输入。接受输入后我想要对行进行求和,为此我编写了一个名为rowsum的函数但它没有正常工作。它没有提供所需的输出。
答案 0 :(得分:1)
那是因为你打印出第一行的部分总和。
你应该有两个循环,一个用于行,一个用于列,只有在循环遍历所有列后才打印出结果。
或者,如果您只想要设置行的总和,至少将print语句移出循环,这样您才能获得最终总和,而不是中间结果。
答案 1 :(得分:1)
您的代码的问题在于您在此处使用了单个循环而不是所需的两个for循环。因此,您的代码所做的只是计算第0行的总和(从r=0
开始)。
您实际需要做的是计算一行的总和(即for(c=0;c<cols;c++)
),row
次。 HTH !!
for(r=0;r<rows;r++)
{
sum = 0;
for(c=0;c<cols;c++) //calculates sum of rth row
{
sum += arr[r][c];
}
cout<<"Sum of row " << i <<" is " << sum ;
}