(个人理解,学习自用)
一、求和类型
行,列,两条对角线(主,副)
1.对行求和
#include <stdio.h>
int a[3][3]={1,2,3,4,5,6,7,8,9};
int main() {
int i,j,sum = 0;
for (i = 0;i<3;i++) {
sum = 0;//每次计算出一行的和后清零,否则会累加
for (j = 0;j<3;j++) {
sum += a[i][j];
}
printf ("%d ",sum);//i代表行,每算完一行的和输出
}
return 0;
}
2.对列求和
#include <stdio.h>
int a[3][3] = {1,2,3,4,5,6,7,8,9};
int main() {
int i,j,sum = 0;
for (i = 0;i<3;i++) {
sum = 0;//同样需要清空上一次计算的和,防止被累加
for (j = 0;j<3;j++) {
sum += a[j][i];//这里使j代表行,i代表列,因为这里需要求列和,所以需要列在不变加和行
}
printf ("%d ",sum); //i代表列,这里每算完一列的和后输出
}
return 0;
}
3.对对角线求和
这里需要观察一下寻找规律,主对角线的每个数字行数与列数的位置相同,我们发现为a[0][0],a[1][1],a[2][2]
副对角线的i与j相加时和为2,列数通式为[2-i]或是[2-j]
#include <stdio.h>
int a[3][3] = {1,2,3,4,5,6,7,8,9};
int main() {
int i,j,sum =0,su=0;
for (i = 0;i<3;i++) {
for (j = 0;j<3;j++) {
if (i == j)//主对角线 "\"
sum += a[i][i];
if (i+j==2)//副对角线 "/"
su += a[i][2-j];
}
}
printf ("%d\n%d",sum,su);
return 0;
}