求一个n阶方阵对角线元素之和。
package practice_2;
import java.util.*;
public class pracitice_1 {
public static void main(String[] args) {
System.out.println("请输入你要输入的阶数");
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int[][] num = new int[n][n];
int sum1 = 0,sum2 = 0;
System.out.println("请输入矩阵的元素数值");
for(int i = 0;i < n;i++) {
for( int j = 0;j < n;j++) {
num[i][j] = input.nextInt();
if(i == j)
{
sum1 = sum1 + num[i][j];
}
if(i == n - j - 1 && j == n - i - 1) {
sum2 = sum2 + num[i][j];
}
}
}
System.out.println("矩阵为:");
for(int i = 0;i < n ;i++) {
for(int j = 0;j < n;j++)
{
System.out.print(num[i][j] + "\t");
}
System.out.print("\n");
}
System.out.println("主对角线为:");
System.out.println(sum1);
System.out.println("副对角线为:");
System.out.println(sum2);
}
}
输入一个一维数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
package practice_2;
import java.util.Scanner;//import是调用包的;
import java.util.Arrays;//常用的数组操作,比如排序和查找;
public class practice_2 {
public static void main(String[] args) {
System.out.println("请输入数组的长度");
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int[] a = new int [n];
System.out.println("请输入数组的数值");
for(int i = 0;i < n;i++) {
a[i] = input.nextInt();
}
int max = a[0];
int min = a[0];//把max和min的初始值都赋值为首元素;
for(int i = 0;i < n;i++)
{
if(max < a[i]) {/*把max与数组中的元素比较,如果数组中的元素大就交换,不是简单的交换,先把最大值给max,
然后把当前元素的值用a[0]替换,a[0]的值再被max替换,这样就做到了交换,而且不影响数组元素的值;*/
max = a[i];
a[i] = a[0];
a[0] = max;
}
if(min >= a[i]) {
min = a[i];
a[i] = a[n-1];
a[n-1] = min;
}
}
/*for(int i = 0;i < n;i++) {
System.out.print(a[i] + "\t");
}*/
System.out.println(Arrays.toString(a));//输出一个数组中的所有元素;
}
}