【发布时间】:2020-12-20 15:44:50
【问题描述】:
我想用一个函数对第三行的矩阵求和,但它没有输出任何东西。
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int m = 5, n = 7;
void sumrow ( int *i , int *j ){
int sum = 0;
int **a = new int *[m];
for(int j = 0 ; j < n ; j ++)
a[*i] = new int [n];
sum = sum + a[2][*j];
cout << sum << endl;
}
int main () {
srand (time(NULL));
int sum = 0;
int **a = new int *[m];
for ( int i = 0 ; i < m; i++){
a[i] = new int [n];
for( int j = 0; j < n ; j++)
a[i][j] = rand() % 10;
}
for( int i = 0; i < m ; i ++){
for(int j = 0 ; j < n ; j ++){
cout << a[i][j] << " ";
}
cout << endl;
}
int i , j;
sumrow(&i,&j);
for ( int i = 0; i < m; i ++)
delete [] a[i];
delete [] a;
}
我的函数 (sumrow) 有问题。如何在第三行输出总和?
【问题讨论】:
-
在
sumrow函数中,您创建了一个“矩阵”a,但您永远不会用值填充它。它的内容将是不确定的,使用这些值会导致未定义的行为。我建议您投资some good books 并参加一些课程以正确学习 C++。