C语言编程:求矩阵对角线元素之和

问题描述

求一个3×3矩阵(元素值为1~1000之间的整数)对角线元素之和。
输入格式
一个3×3矩阵
输出格式
主对角线和副对角线元素之和
样例输入
1 2 3
1 1 1
3 2 1
样例输出
3 7

第1个回答  2021-11-09
(i+j) == N-1是为什么啊
第2个回答  2018-06-05
#include <stdio.h>
#include <malloc.h>
#define N 3
void main(){
int *matrix;
int i;
char line1[6];
char line2[6];
char line3[6];
matrix = (int *)malloc(N*sizeof(int));
printf("请输入一个%d阶的方阵:\n",N);
for(i=0;i<N;i++){//输入矩阵字符串
if(i==0){
gets(line1);
}else if(i==1){
gets(line2);
}else if(i==2){
gets(line3);
}
}
for(i=0;i<N*N;i++){//将输入的字符串转换成数字
if(i<3){
matrix[i] = (int)(line1[(i%3)*2]-'0');
continue;
}
if(i<6){
matrix[i] = (int)(line2[(i%3)*2]-'0');
continue;
}
if(i<9){
matrix[i] = (int)(line3[(i%3)*2]-'0');
continue;
}
}
printf("你输入的矩阵:\n");
for(i=0;i<N;i++){//打印矩阵
int j;
for(j=0;j<N;j++){
printf("%d ",matrix[i*3+j]);
}
printf("\n");
}
int a = 0;//正对角线元素之和
int b = 0;//副对角线元素之和
for(i=0;i<N;i++){//求正副对角线之和
int j;
for(j=0;j<N;j++){
if(i==j){//正对角线
a = a+matrix[i*3+j];
}
if((i+j)==2){//副对角线
b = b+matrix[i*3+j];
}
}
}
printf("正副对角线元素之和为:\n");
printf("正:%d 副:%d",a,b);
}
第3个回答  2016-11-27
# include<stdio.h>

# define N 3

int main(void)

{
int a[N][N];

int i,j,sum1=0,sum2=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)

sum1 = sum1 + a[i][j];

if((i+j) == N-1)

sum2 = sum2 + a[i][j];
}

printf("%d %d\n",sum1,sum2);
return 0;
}本回答被提问者和网友采纳

如何使用c语言编程求矩阵对角线元素之和?
1、首先在电脑中,打开Dev-c++软件,点击“新建源代码”,如下图所示。2、具体程序如下,如下图所示。3、此次的程序最终目的是求出3x3的整型矩阵对角线元素之和,所以要向计算机输入3x3矩阵中的所有元素。4、其次要对输入的矩阵的元素进行放置于相应的位置,以便于之后的计算其对角元素之和。5、最后需...

如何用c语言求3×3的矩阵对角线元素之和?
您可以使用二维数组来表示3x3的矩阵,并计算对角线元素之和。下面是一个示例代码:include <stdio.h> int main() { int matrix[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; \/\/ 定义一个3x3的矩阵 int sum = 0; \/\/ 计算主对角线元素之和 for (int i = 0; i < ...

求矩阵a的主对角线之和,用C语言怎么写?
C语言程序如下:include<stdio.h> int main(){ int a[3][3],sum=0;int i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)if(i==j)sum=sum+a[i][j];printf("sum=%d\\n",sum);return 0;} ...

C语言:编写程序,求一个n×n矩阵对角线元素之和。
sum+=array;cout<<"两条对角线元素之和为:"<<sum<<endl;system("pause");return 0;}

C语言编程题:定义一个5╳5的矩阵,求对角线上的元素之和。
void main(){ int a[4][4],i,j,s1=0,s2=0,sum=0;srand(time(NULL));\/\/生成随机种子 for(i=0;i<5;i++)\/\/赋值 for(j=0;j<5;j++)a[j]=rand()%10+0;printf("随机生成的数组为:\\n");for(i=0;i<5;i++)for(j=0;j<5;j++){ printf("%d\\t",a[j]);if(j==4...

编写程序求一个3*3矩阵的两条对角线元素之和,并输出。C语言
1、新建一个工程和.c文件。2、输入主函数和头文件。3、接下来开始定义变量类型并赋初值。4、用一个for循环计算主对角线的和。5、输出两条对角线元素之和。6、编译,运行,得到最后的结果,两条对角线元素之和了。

C语言求矩阵对角线的和
include<stdio.h>int a[10][10]={0};int i,j,n,sum;void shuru();int main(){ while (1){ printf("请输入矩阵的阶数:(输入0结束程序)\\n");scanf("%d",&n);if (n==0) break; shuru();sum=0;for (i=0;i<n;i++)sum=sum+a[i][i];printf("矩阵的对角线元素和...

...矩阵a,求对角线上元素之和a1减去非外围元素之和a2。C语言求解...
printf("矩阵元素表:\\n");for(i = 0; i < 4; ++i) { for(j = 0; j < 4; ++j) { printf("%4d",a[i][j]);} printf("\\n");} for(i = 0; i < 4; ++i) { msum += a[i][i];ssum += a[i][3 - i];} printf("主对角线的和是:%d\\n斜对角线的和是:%d\\...

编程实现:输入一个 n*n 的矩阵,求出两条对角线元素值之和。
编程实现:输入一个 n*n 的矩阵,求出两条对角线元素值之和。用C语言编程 b1000638 | 浏览5586 次 |举报 我有更好的答案推荐于2017-12-16 11:20:08 最佳答案 \/\/输入范例 假设n赋值为4\/*1 2 3 4(回车)2 3 4 5(回车)3 4 5 6(回车)5 6 7 8(回车)注意 输入时数字间要有空格间隔*\/#include...

用C语言:编程求4X4矩阵两条对角线元素值的和
main(){int a[4][4],s1=0,s2=0;int i,j;for (i=0;i<4;i++)for (j=0;j<4;j++)scanf("%d",&a[i][j]);for (i=0,j=0;i<4,j<4;i++,j++)s1=s1+a[i][j];for (i=0,j=3;i<4,j>=0;i++,j--)s2=s2+a[i][j];printf("主对角线:%d \\n副对角线:...

相似回答