c语言 按行输入3行3列矩阵A的各元素,计算主对角线之和并输出

如题所述

#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||(i+j==2))

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

printf("sum=%d\n",sum);

return 0;

}

运行效果:

扩展资料:

main函数用法

1、C++中的main函数

C++继承了C语言的大部分特性,因此保留了“程序总是从main函数开始执行,且总是默认从main函数的return语句或结尾处结束运行”这一传统,但是要注意,C++中的main函数要想作为程序执行的出入口,必须写在全局(Global)范围,

不能写成某个结构体或某个类的成员。虽然main函数可以作为结构体或者类的成员函数,但相应地会失去作为程序出入口的功能。

C++中全局main函数的书写格式与C语言完全相同,功能也完全相同,且同一C++程序同样只能有一个全局main函数。

2、Java中的main函数

Java同样是以main函数作为程序执行出入口的,但Java作为“更纯洁”的面向对象语言,它的main函数与C/C++有很大的不同。

首先,返回值的概念淡化,在Java Application中main不允许返回值,因此int main是被禁止的,必须使用void main,int main仅限在JavaBean中使用。

其次,Java中所有的函数必须属于类,没有什么全局函数一说,因此main函数不能是全局成员,必须是某个类的成员。

第三,由于main函数变成了类的成员函数,因此要想直接被系统调用,还必须使用public static使其成为静态函数并具有公开权限。

第四,main函数的参数被简化,只需要提供字符串数组即可,不需要提供参数个数(这是由于Java的数组具有下标检查功能的原因)

Java Application中的main函数一般格式如下(类名可以自定义,但保存为Java源码时,主文件名必须与类名相同,否则可能无法运行)

public class MainDemo{

public static void main(String[]args){

//TODO:在此处写入主函数的内容

}

}

Java Applet的运行机制与Java Application完全不同,因此不需要main函数

3、C#中的main函数

C#中的main函数与Java大同小异,同样必须是类成员,同样使用字符串数组作唯一参数,同样是静态函数,同样的void main,

与之不同的是:main的首字母变成了大写,即"Main函数“,且是否限定为public级别已经无所谓了(默认没有public,但某些场合可能还是需要public)

另外,需要注意的是,C#中不再有”类名必须与主文件名同名“的限制,即使类名不和主文件名相同,程序照样可以运行。

C#应用程序中的main函数默认是这样的(注意main的首字母已是大写)

C#和C/C++、java不同的是C#不在拘泥于必须从main()函数开始执行,C#是属于事件触发。

class Program{

static void Main(string[]args){

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-07-09

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;

}

扩展资料:

主对角线(principal diagonal)是n阶矩阵或n 阶行列式:

中从左上角到右下角的对角线。主对角线中有序的元素集合:

 

称为对角元素

因此,计算主对角线之和并输出的思路就是判断矩阵数组元素是否是主对角元素,如果数组元素的两个下标相等,则该数组元素为对角元素。

参考资料:百度百科-主对角线

本回答被网友采纳
第2个回答  推荐于2017-12-15
#include<stdio.h>
int main()
{
int matrix[3][3],sum=0;
printf("请输入3*3矩阵的各行,每行3个数,每个数之间用空格隔开\n");
for(int i=0;i<3;i++)
{
printf("第%d行:",i+1);
for(int j=0;j<3;j++)
scanf("%d",&matrix[i][j]);
}
sum=matrix[0][0]+matrix[1][1]+matrix[2][2];
printf("主对角线之和为%d\n",sum);
return 0;
}本回答被网友采纳
第3个回答  2013-12-13
#include <stdio.h>
int main()
{
int a[3][3];
int i,j,s=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++) scanf("%d",&a[i][j]);
if(i==j) s+=a[i][j];
}
printf("sum = %d\n",s);
return 0;
}
第4个回答  2013-12-13
#include <stdio.h>
#include <math.h>
#define N 3
main()
{int a[N][N]={0} ;
int i,j,s=0;printf("The original array is : \n");
for(i=0;i<N;i++)
for(j=0;j<3;j++)scanf("%d",&a[i][i]);

for(i=0;i<N;i++)
for(j=0;j<3;j++)
{
if(i==j)
s+=a[i][j];}
printf("The sum is:%d",s);
}
相似回答