求一个4×4的整型二维数组主对角线元素之和

谁帮忙写下,考试题。谢谢。
2024年12月02日 22:31
有5个网友回答
网友(1):

下面是Java语言编写一个计算4*4整型数组对角线元素和的代码:

import java.util.Scanner;

public class 2DArrayPractice {

public static void main(String[] args) {

// TODO Auto-generated method stub

/*

* 请输入任意一个4*4的矩阵,计算出左右对角线上的元素之和

*/

int[][] array = new int[4][4];

Scanner scan = new Scanner(System.in);

for(int i = 0; i < array.length; i++){

for(int j = 0; j < array[i].length; j++){

System.out.println("请输入第"+(i+1)+"行第"+(j+1)+"列上的元素:");

array[i][j] = scan.nextInt();

}

}

int total = 0;//作为最后存放结构的变量

for(int i = 0; i < array.length; i++){

for(int j = 0; j < array[i].length; j++){

//左对角元素      右对角元素

if(i == j || i +j == 3){

total += array[i][j];

}

}

}

}

}

执行结果(执行的时候需要输入4*4的数组):

扩展资料:

Java中二维数组被看作数组的数组,即二维数组为一个特殊的一维数组,其每个元素又是一个一维数组。

Java 并不直接支持二维数组,但是允许定义数组元素是一维数组的一维数组,以达到同样的效果。声明二维数组的语法如下:

type array[][];type[][] array;

其中,type 表示二维数组的类型,array 表示数组名称,第一个中括号表示行,第二个中括号表示列。

下面分别声明 int 类型和 char 类型的数组,代码如下:

int[][] age; char[][] sex;

二维数组可以初始化,和一维数组一样,可以通过3种方式来指定元素的初始值。

这 3 种方式的语法如下:

array=new type[][]{值 1,值 2,值 3,…,值 n};

array=new type[][]{new 构造方法(参数列),…};

type[][] array={{第1行第1列的值,第1行第2列的值,…},{第2行第1列的值,第2行第2列的值,…},…};

网友(2):

#include
int main()
{
double a[5][5];
int i,j;
double sum=0;

printf("请输入该 4*4 矩阵\n");
for (i=1;i<=4;i++)
for (j=1;j<=4;j++)
{
scanf("%lf",&a[i][j]);
}
for (i=1;i<=4;i++)
{
sum+=a[i][i]+a[i][5-i];
}
printf("%lf\n",sum);

}
主对角线 就是 两条吧~~
数据时用double类型的,如果 是整型 的你用 int替代就是了~~
LZ 给分吧~~

网友(3):

#include stdio.h
int main()
{
int i,j,sum=0;
int arr[5][5];
printf("请输入数组元素的值:\n");
for(i=0;i5;i++)
{
for(j=0;j5;j++)
{
scanf("%d",*(arr+i)+j);
}
}
for(i=0;i5;i++)
{
for(j=0;j5;j++)
{
if(i==j) sum+=*(*(arr+i)+j);
if(i+j==4) sum+=*(*(arr+i)+j);
}
}
printf("对角线的和为:%d",sum-*(*(arr+2)+2));
return 0;
}

网友(4):

import java.util.Scanner;

/**
* @author Administrator
*矩阵求和
*/
public class _02juzhenSum {
/*
* 读入一个n*n矩阵,输出它的主对角线之和
*/
public static void main(String[] args) {
int sum;
Scanner sc = new Scanner(System.in);
System.out.println("请输入矩阵的阶数:");
int n = sc.nextInt();
int[][] array = new int[n][n];
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
System.out.println("请输入第 " + (i +1) + " 行"+ ",第 "+(j+1)+" 列的值:");
array[i][j] = sc.nextInt();
}
}
sum = 0;
//求主对角线之和
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
if (i == j) {
sum += array[i][j];
}
}
}
System.out.println("主对角线之和为:" + sum);

}
}

网友(5):

int sum=0,i;
for(i=0;i<4;i++)
sum+=a[i][i];
其中a为数组名