下面是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列的值,…},…};
#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 给分吧~~
#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;
}
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);
}
}
int sum=0,i;
for(i=0;i<4;i++)
sum+=a[i][i];
其中a为数组名