【发布时间】:2020-08-02 04:11:00
【问题描述】:
这段代码应该对矩阵主对角线上的数字求和。
#include <stdio.h>
#define RIG 2
#define COL 5
void sum(unsigned int a[RIG][COL]);
int main(){
unsigned int a[RIG][COL] = {{1,2,3,4,5},{6,7,8,9,10}};
sum(a);
}
void sum(unsigned int a[RIG][COL]){
unsigned int c = 0;
unsigned int j = 0;
if (RIG<=COL){
int n = RIG;
}
else{
int n = COL;
}
for (size_t i=0;i<=n-1;++i){
c += a[i][j];
j += 1;
}
printf("%d\n", c);
}
输出:
matrix_sum.c:28:21: error: use of undeclared identifier 'n'
for (size_t i=0;i<=n-1;++i){
^
1 error generated.
我不明白为什么我不能在 for 循环中使用 n 变量。我该怎么做?
【问题讨论】:
-
删除未签名
-
给定的代码对我来说编译得很好。我怀疑您热衷于将问题减少到MVCE,您不小心丢失了一些重要信息。你能多贴一点上下文代码吗?
-
@MohammadMoeinGolchin 没有任何变化。
-
编辑后,
n在块范围内定义,因此在块外不可见 -
@user3121023 如何使该变量在其余代码中可用?