作业4、5

来源:互联网 发布:win10优化不了怎么办 编辑:程序博客网 时间:2024/05/16 14:13

练习4:

求一个n阶方阵对角线元素之和。

代码如下:

import java.util.*;public class Sum{       public static void main(String args[]){              int n,sum1=0,sum2=0;              System.out.println("请输入阶数n:");                      Scanner input=new Scanner(System.in);              n=input.nextInt();              int[][]a=new int[n][n];               System.out.println("请输入每个元素:");                           for(int i=0;i<n;i++)                 for(int j=0;j<n;j++){                   a[i][j]=input.nextInt();                            if(i==j)                   sum1+=a[i][j];                   if(i==n-1-j)                   sum2+=a[i][j];          }        System.out.println("主对角线之和为"+sum1);        System.out.println("副对角线之和为"+sum2);                         }  }
运行结果:


练习5:

输入一个一维数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

代码如下:

import java.util.*;public class Exchange{       public static void main(String args[]){          Scanner input=new Scanner(System.in);          System.out.println("请输入数组长度n:");          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=0,min=0;          for(int j=0;j<n;j++){             if(a[j]>a[max])              max=j;}//找出最大元素的下标              int t=a[0];              a[0]=a[max];              a[max]=t;          for(int j=0;j<n;j++){            if(a[j]<a[min])              min=j;}//找出最小元素的下标              int m=a[n-1];              a[n-1]=a[min];              a[min]=m;         for(int i=0;i<n;i++)         System.out.println(a[i]);         }  }

运行结果:


总结:1.对角线有两条

            2.只是将最大的元素和第一个元素进行交换,其余顺序不变,因此只需交换一次。

原创粉丝点击