C++ 包含大量行和列的矩阵的列之和 long int a[n][n]; long-long-inti,j; 对于(i=0;i a[i][j]; } } 长整型s,f=0; 对于(i=0;ilong int a[n][n]; long-long-inti,j; 对

C++ 包含大量行和列的矩阵的列之和 long int a[n][n]; long-long-inti,j; 对于(i=0;i a[i][j]; } } 长整型s,f=0; 对于(i=0;ilong int a[n][n]; long-long-inti,j; 对,c++,matrix,C++,Matrix,包含大量行和列的矩阵的列之和 long int a[n][n]; long-long-inti,j; 对于(i=0;i a[i][j]; } } 长整型s,f=0; 对于(i=0;ilong int a[n][n]; long-long-inti,j; 对于(i=0;i a[i][j]; } } long long int s=0,f=0;//在s中放入一些值,否则它将得到一个垃圾值 对于(i=0;iYou从未初始化s,因此它以一个随机垃圾值开始,并导致未定义的行为。s未初始化使用,您的代码具有

包含大量行和列的矩阵的列之和
long int a[n][n];
long-long-inti,j;
对于(i=0;i a[i][j];
}
}
长整型s,f=0;
对于(i=0;i
long int a[n][n];
long-long-inti,j;
对于(i=0;i a[i][j];
}
}
long long int s=0,f=0;//在s中放入一些值,否则它将得到一个垃圾值

对于(i=0;iYou从未初始化
s
,因此它以一个随机垃圾值开始,并导致未定义的行为。
s
未初始化使用,您的代码具有未定义的行为。请查看编译器警告,这也不是问题所在,实际上我不能100%确定您是否在使用VLA,但可能性很高,请阅读此处:。如果您使用
std::vector
std::accumulate
许多潜在的错误都将消失。不过,不幸的是,您在这里犯的错误也可能与
std::vector
+
std::accumulate
一样(只是有点难做到)为什么你有
f
变量?如果你删除
,f
你的代码会被修复,因为它会将
s
初始化为零。谢谢你!使用向量解决了我的问题。我在尝试更正代码时用0初始化了s,但它没有帮助使用向量,而是帮助了tho!
long long int a[n][n];
long long int i,j;
for(i=0; i<n; i++) {
    for(j=0; j<n; j++) {
        cin >> a[i][j];
    }
}

long long int s=0,f=0;  //Put some value in S otherwise it will get a junk value
for(i=0; i<n; i++) {
    for(j=0; j<n; j++) {
        s=s+a[j][i];
    }
    cout<<s<<endl;
}
vector<vector<int> > a( n , vector<int> (n));
long long int i,j;
for(i=0; i<n; i++) {
    for(j=0; j<n; j++) {
        cin >> a[i][j];
    }
}

long long int s=0,f=0;  //Put some value in S otherwise it will get a junk value
for(i=0; i<n; i++) {
    for(j=0; j<n; j++) {
        s=s+a[j][i];
    }
    cout<<s<<endl;
}