解题思路:
1、矩阵选择使用二维数组 a[x][y] 来存储。
2、使用二维数据存储数据时,需要2个for循环来获取数据
3、主对角线的数据特征是 x=y, 副对角线的数据特征是x+y=2
注意事项:
参考代码:
#include<stdio.h> int main() { int x, y, sum1 = 0, sum2 = 0, a[3][3]; for(x=0; x<3; x++) { for(y=0; y<3; y++) { scanf("%d", &a[x][y]); if(x == y) sum1+=a[x][y]; if(x+y == 2) sum2+=a[x][y]; } } printf("%d %d", sum1, sum2); return 0; }
0.0分
147 人评分
#include<stdio.h> int main() { int arr[9] = { 0 }; int i = 0,z=0,f=0; for (i = 0; i <= 8; i++) { scanf("%d", &arr[i]); } for (i = 0;i<=8; i += 4)//0 4 8 { z += arr[i]; } printf("%d ", z); for (i = 2;i<7; i += 2)//3 5 7/2 4 6 { f += arr[i]; } printf("%d", f); return 0; }
这个为什么答案对一半啊 #include<stdio.h> main() { int s[3][3]; int sum1 = 0, sum2 = 0, j = 0; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { scanf("%2d", &s[i][j]); } } for (int i = 0; i < 3; i++) { sum1 = s[i][i] + sum1; } for (int k = 2; k > -1; k--) { sum2 = s[j][k] + sum2; j++; } printf("%d %d", sum1, sum2); }
#include<stdio.h> int main() { int a[3][3]; int i,j,sum1=0,sum2=0; for(i=0;i<3;i++) { for(j=0;j<3;j++) { scanf("%d",&a[i][j]); if(i==j)// sum1=sum1+a[i][j]; if(i+j==2) sum2=sum2+a[i][j]; } } printf("%d %d",sum1,sum2); return 0; }
请问一下我这样为什么是错的,有大佬可以帮我解答一下吗,谢谢! #include<stdio.h> int main() { int a[3][3]; int i,j,sum1=0,sum2=0; for(i;i<3;i++) { for(;j<3;j++) { scanf("%d",&a[i][j]); } } for(i;i<3;i++) { for(j;j<3;j++) { if(i==j) sum1 +=a[i][j]; if(i+j==2) sum2 +=a[i][j]; } } printf("%d %d",sum1,sum2); return 0; }
我伸手star落 2023-01-19 20:52:48 |
忘记写了,我定义的是int i=0,j=0,sum1=0,sum2=0;
主对角线和副对角线是啥
#include <stdio.h> void CalData(int ptr[][3]); int main(void) { int data[3][3] = {0}; for(int i = 0;i < 9;i++) { scanf("%d",&data[i / 3][i % 3]); } CalData(data); return 0; } void CalData(int ptr[][3]) { int sum_Master = 0,sum_Slave = 0; for(int i = 0;i < 3;i++) { sum_Master += ptr[i][i]; sum_Slave += ptr[i][2 - i]; } printf("%d %d\n" ,sum_Master ,sum_Slave); }
#include<stdio.h> #define N 3 int main(void) { int number[N][N] = { 0 }; int i = 0, j = 0, sum = 0, all = 0; int* p = number; for (i = 0; i <= 8; i++) { scanf_s("%d", (p + i)); } for (i = 0 , j = 0; i<N ; i++ , j++) { sum += number[i][j]; all += number[i][N - 1 - j]; } printf("%d %d", sum, all); return 0; } 大佬,为啥我用指针来给数组赋值,结果0分呢?
#include<stdio.h> int main() { int a[5][5]={0}; int i,j; int sum1=0,sum2=0; for(i=1;i<4;i++) { for(j=1;j<4;j++) scanf("%d",&a[i][j]); } for(i=1;i<5;i++) { for(j=1;j<5;j++) { if(i==j) { sum1=sum1+a[i][j]; } if(j+i==4) { sum2=sum2+a[i][j]; } } } printf("%d %d\n",sum1,sum2); return 0; }
数字整除 (C++代码)——(22行代码)真的只需要两个变量就够了浏览:1803 |
printf基础练习2 (C语言代码)浏览:3362 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:560 |
C二级辅导-等差数列 (C语言代码)浏览:761 |
2006年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:802 |
C语言程序设计教程(第三版)课后习题6.6 (C语言代码)浏览:349 |
哥德巴赫曾猜测 (C语言代码)浏览:2316 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:1415 |
C语言训练-亲密数 (C语言代码)浏览:682 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:780 |