01:对10个整数进行按照从小到大的顺序排序
public class Demo01 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
//创建一个数组存储10个整数
int[] arr=new int[10];
//遍历数组,接收用户输入的数存入数组
for(int i=0;i<arr.length;i++){
System.out.println("请输入第"+(i+1)+"个数据:");
arr[i]=sc.nextInt();
}
//使用遍历,用固定位置的数和后面的数逐个比较,将最小的数筛选出来
for(int j=0;j<arr.length;j++){
for(int i=j+1;i<arr.length;i++){
if(arr[i]<arr[j]){
int min=arr[i];
arr[i]=arr[j];
arr[j]=min;
}
}
}for(int i:arr){
System.out.print(i+" ");
}
}
}
02:求一个3*3矩阵对角线元素之和
<提示>程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。
public class Demo02 {
public static void main(String[] args) {
int[][] arr=new int[3][3];
Scanner sc=new Scanner(System.in);
//双重for循环输入矩阵每个位置的数
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
System.out.println("请输入一个数:");
arr[i][j]=sc.nextInt();
}
}
//将对角数相加
int sum=arr[0][0]+arr[0][2]+arr[2][0]+arr[2][2];
System.out.println("矩阵对角线之和为:"+sum);
}
}
03:有一个已经按升序排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
<提示>程序分析:首先判断此数第一次小于数组中哪个元素,然后将此数插入,插入后此元素之后的数,依次后移一个位置。
public class Demo03 {
public static void main(String[] args) {
int ar[]={1,2,3,4,5};
int[] arr=new int[ar.length+1];
Scanner sc=new Scanner(System.in);
for(int i:ar){
System.out.print(i+" ");
}
System.out.println();
//接收用户输入的数据,把它存到新数组的最后一位
System.out.println("请输入想插入的数据:");
int num=sc.nextInt();
arr[arr.length-1]=num;
//将老数组存入新数组中
for(int i=0;i<ar.length;i++){
arr[i]=ar[i];
}
//遍历数组,将最后一个数与前面每个数比较,如果那个数比最后一个数大,则将数据与后一位交换
for(int i=arr.length-2;i>=0;i--){
if(num<arr[i]){
int a=arr[i];
arr[i]=arr[i+1];
arr[i+1]=a;
}
}
for(int i:arr){
System.out.print(i+" ");
}
}
}
04:将一个数组逆序输出。
public class Demo04 {
public static void main(String[] args) {
int[] arr={1,2,3,4,5,6};
//逆序遍历数组输出
for(int j=arr.length-1;j>=0;j--){
System.out.print(arr[j]+" ");
}
}
}
05:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
public class Demo05 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int[] arr=new int[6];
//遍历数组存储数据
for(int i=0;i<arr.length;i++){
System.out.println("请输入第"+(i+1)+"个数");
arr[i]=sc.nextInt();
}
//找到数组中最大(最小)的数据
int max=arr[0];
int min=arr[arr.length-1];
for(int i=1;i<arr.length;i++){
if(max<arr[i]) {
max = arr[i];
}else if(min>arr[i]){
min=arr[i];
}
}
//找到最大数和最小数的位置,并与第一个(最后)一个元素交换位置
for(int i=0;i<arr.length;i++){
if(max==arr[i]){
arr[i]=arr[0];
arr[0]=max;
}else if(min==arr[i]){
arr[i]=arr[arr.length-1];
arr[arr.length-1]=min;
}
}
for(int i:arr){
System.out.print(i+" ");
}
}
}
06:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
public class Demo06 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入想输入整数的个数:");
int[] arr=new int[sc.nextInt()];
System.out.println("输入向后移的位数:");
int m=sc.nextInt();
//将键盘录入数存入数组
for(int i=0;i<arr.length;i++){
System.out.println("请输入第"+(i+1)+"个数:");
arr[i]=sc.nextInt();
}
for(int i:arr){
System.out.print(i+" ");
}
int[] newArr=new int[arr.length];
//将后面m个数存到前面,把前面你n-m个数放到后面
for(int i=0;i<arr.length;i++){
if(m+i-1<arr.length) {
newArr[i] = arr[m +i-1];
}else{
newArr[i]=arr[m+i-1-arr.length];
}
}
System.out.println();
for(int i:newArr){
System.out.print(i+" ");
}
}}
07:定义一个4行4列的二维数组,逐个从键盘输入值,然后将第1行和第4行的数据进行交换,将第2行和第3行的数据进行交换

public class Demo07 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int[][] arr=new int[4][4];
//创建数组接受用户输入的数据
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
System.out.println("请输入第"+(i+1)+"行"+(j+1)+"列的数:");
arr[i][j]=sc.nextInt();
}
}
//输出原数组
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
System.out.println("--------------------------");
//第1行和第4行的数据进行交换,第2行和第3行的数据进行交换
for(int j=0;j<4;j++){
int num1=arr[0][j];
arr[0][j]=arr[3][j];
arr[3][j]=num1;
int num2=arr[1][j];
arr[1][j]=arr[2][j];
arr[2][j]=num2;
}
//输出新数组
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
08:定义一个3行4列的二维数组,逐个从键盘输入值,编写程序将四周的数据清0
public class Demo08 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int[][] arr=new int[3][4];
//创建数组接受用户输入的数据
for(int i=0;i<3;i++){
for(int j=0;j<4;j++){
System.out.println("请输入第"+(i+1)+"行"+(j+1)+"列的数:");
arr[i][j]=sc.nextInt();
}
}
//输出原数组
for(int i=java基础编程题及答案数组0;i<3;i++){
for(int j=0;j<4;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
System.out.println("------------------------------");
//将数组中行1或3,列为1或4的数据置0
for(int i=0;i<3;i++) {
for (int j = 0; j < 4; j++) {
if (i == 0 || j == 0||i==2||j==3) {
arr[i][j] = 0;
}
}
}
//输出新数组
for(int i=0;i<3;i++){
for(int j=0;j<4;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
09:定义一个3行4列的二维数组,逐个从键盘输入值,将左下三角的值清0
public class Demo09 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int[][] arr=new int[3][4];
//创建数组接受用户输入的数据
for(int i=0;i<3;i++){
for(int j=0;j<4;j++){
System.out.println("请输入第"+(i+1)+"行"+(j+1)+"列的数:");
arr[i][j]=sc.nextInt();
}
}
//输出原数组
for(int i=0;i<3;i++){
for(int j=0;j<4;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
System.out.println("------------------------------");
//将数组左下三角的值清0
for(int i=0;i<3;i++) {
for (int j = 0; j <= i; j++) {
arr[i][j] = 0;
}
}
//输出新数组
for(int i=0;i<3;i++){
for(int j=0;j<4;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
10:定义一个4行4列的二维数组,逐个从键盘输入值,将对角线的值清0
public class Demo10 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int[][] arr=new int[4][4];
//创建数组接受用户输入的数据
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
System.out.println("请输入第"+(i+1)+"行"+(j+1)+"列的数:");
arr[i][j]=sc.nextInt();
}
}
//输出原数组
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
System.out.println("------------------------------");
//将数组中行1或3,列为1或4的数据置0
for(int i=0;i<4;i++) {
for (int j = 0; j < 4; j++) {
if (i ==j||i+j==3) {
arr[i][j] = 0;
}
}
}
//输出新数组
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
11:定义一个N*N二维数组,从键盘上输入值,找出每行中最大值组成一个一维数组并输出;
public class Demo11{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入想要创造矩阵的行列数:");
int n=sc.nextInt();
int[][] arr=new int[n][n];
//创建数组接受用户输入的数据
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
System.out.println("请输入第"+(i+1)+"行"+(j+1)+"列的数:");
arr[i][j]=sc.nextInt();
}
}
//输出原数组
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
System.out.println("------------------------------");
//创建空的新数组
int[] newArr=new int[n];
for(int i=0;i<n;i++) {
for (int j = 0; j < n; j++) {
int max=arr[i][0];
if (max<arr[i][j]) {
max=arr[i][j];
}newArr[i]=max;//将每行最大的数存到新数组中
}
}
//输出新数组
for(int i=0;i<n;i++){
System.out.print(newArr[i]+" ");
}
}
}
12:从键盘上输入一个 3*4 的整型数组,求出其中的最大值和最小值,并显示出
public class Demo12 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[][] arr = new int[3][4];
//创建数组接受用户输入的数据
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
System.out.println("请输入第" + (i + 1) + "行" + (j + 1) + "列的数:");
arr[i][j] = sc.nextInt();
}
}
//输出原数组
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
System.out.println("------------------------------");
int max=arr[0][0];
int min=arr[0][0];
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
if(max<arr[i][j]){
max=arr[i][j];
}else if(min>arr[i][j]){
min=arr[i][j];
}
}
}
System.out.println("数组中最大的数是"+max);
System.out.println("数组中最小的数是"+min);
}
}
13:有10个数字要求分别用选择法和冒泡法从大到小输出
public class Demo13 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
System.out.println("请输入第" + (i + 1) + "个数:");
arr[i] = sc.nextInt();
}
//选择法,将后面最大的数选出来,交换两个数位置
for (int i = 0; i < arr.length; i++) {
int max = arr[i];
int num=i;
for (int j = i; j < arr.length; j++) {
if (max < arr[j]) {
max = arr[j];
num=j;
}
}arr[num]=arr[i];
arr[i]=max;
}
for (int i : arr) {
System.out.print(i + " ");
}
System.out.println();
System.out.println("------------------------------");
//冒泡法,每个数都与后面每位比较,如果比后一位小则交换位置
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i; j < arr.length - i - 1; j++) {
if (arr[j] < arr[j + 1]) {
int num = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = arr[j];
}
}
}
for (int i : arr) {
System.out.print(i + " ");
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/1911.html