获取矩阵中的第一个列
Get first col in matrix
我有一个简单的程序,可以获取矩阵的主对角线和反对角线之和。然后它得到 matrix.For 示例的第一列和最后一列的总和:
1 2 3
4 5 6 --> The matrix
7 8 9
md = 1 + 5 + 9 = 15
ad = 7 + 5 + 3 = 15
lastCol = 3 + 6 + 9 = 18
firstCol = 1 + 4 + 7 = 12
我怎样才能得到方阵的 firstCol 的总和?
这是我的代码:
int main(){
int n;
scanf("%d",&n);
int i,j,a[n][n],firstCol=0,lastCol=0,md=0,ad=0;
for(i = 0;i <n;i++){
for(j=0;j<n;j++){
scanf("%d",&a[i][j]);
}
}
for(i = 0;i <n;i++){
for(j=0;j<n;j++){
if(i==j){
md+=a[i][j];
}
if(i+j==n-1){
ad+=a[i][j];
}
}
}
for(i=0;i<n;i++){
lastCol+=a[i][n-1];
}
}
for (i = 0; i < n; i ++) {
firstCol += a[i][0];
}
使用函数。尝试使它们更具通用性。这将 return 任何大小数组的第一列的总和。
long long int sumFirstCol(size_t rows, size_t cols, int (*array)[cols])
{
long long int result = 0;
if(array && rows && cols)
{
for(size_t row = 0; row < rows; row++)
{
result += array[row][0];
}
}
return result;
}
int main(void)
{
int matrix[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},};
printf("%lld\n", sumFirstCol(3, 3, matrix));
}
我有一个简单的程序,可以获取矩阵的主对角线和反对角线之和。然后它得到 matrix.For 示例的第一列和最后一列的总和:
1 2 3
4 5 6 --> The matrix
7 8 9
md = 1 + 5 + 9 = 15
ad = 7 + 5 + 3 = 15
lastCol = 3 + 6 + 9 = 18
firstCol = 1 + 4 + 7 = 12
我怎样才能得到方阵的 firstCol 的总和?
这是我的代码:
int main(){
int n;
scanf("%d",&n);
int i,j,a[n][n],firstCol=0,lastCol=0,md=0,ad=0;
for(i = 0;i <n;i++){
for(j=0;j<n;j++){
scanf("%d",&a[i][j]);
}
}
for(i = 0;i <n;i++){
for(j=0;j<n;j++){
if(i==j){
md+=a[i][j];
}
if(i+j==n-1){
ad+=a[i][j];
}
}
}
for(i=0;i<n;i++){
lastCol+=a[i][n-1];
}
}
for (i = 0; i < n; i ++) {
firstCol += a[i][0];
}
使用函数。尝试使它们更具通用性。这将 return 任何大小数组的第一列的总和。
long long int sumFirstCol(size_t rows, size_t cols, int (*array)[cols])
{
long long int result = 0;
if(array && rows && cols)
{
for(size_t row = 0; row < rows; row++)
{
result += array[row][0];
}
}
return result;
}
int main(void)
{
int matrix[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},};
printf("%lld\n", sumFirstCol(3, 3, matrix));
}