在这里,我编写了一个使用 2 维数组并打算执行行和的 C++ 代码,但它没有给出正确的输出

Here i have written a C++ code which uses 2-dimension array and meant to perform rowsum but it is not giving proper output

本文关键字:代码 C++ 和的 执行 输出 一个 数组 在这里      更新时间:2023-10-16
# 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;
}

上面是一个使用 2-D 数组的C++代码。它接受用户的输入,并使用显示功能显示该输入。输入后,我想对行求和,为此我编写了一个名为rowsum的函数,但它无法正常工作。它不提供所需的输出。

代码的问题在于您在这里使用了单个循环,而不是所需的两个 for 循环。因此,您的代码所做的只是简单地计算第 0 行的总和(自 r=0 年以来(。

您实际需要做的是计算一行的总和(即 for(c=0;c<cols;c++) (,row次数。嗷!!

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 ;
}

这是因为您打印出了第一行的部分总和。

您应该有两个循环,一个用于行,一个用于列,并且仅在遍历所有列后打印出结果。

或者,如果您只需要设置行的总和,则至少将 print 语句移出循环,以便只获得最终总和,而不是中间结果。