麟925 2022-03-24 20:07 采纳率: 88.9%
浏览 16
已结题

二维数组相加无法进行

img


输出杨辉三角如右图,但我的只能进行对角线和第一列的赋值,进入else里面之后,加不上

  • 写回答

1条回答 默认 最新

  • 多多钟意你吖 Java领域优质创作者 2022-03-24 21:47
    关注

    加强版,可以自己输入整数:

    package com.czxy.methodtest;
    import java.util.Scanner;
    public class Demo2 {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    //1、定义一个整数二维数组。 长度根据控制台输入来决定
    //1.1、接收控制台输入
    System.out.println("请输入一个整数:");
    int num = sc.nextInt();
    //1.2、定义二维数组
    int[][] arr = new int[num][num];
    //2、通过二维数组遍历,打印三角形
    for (int i = 0; i < arr.length; i++) {
    for (int j = 0; j <=i; j++) {
    //3、每次元素遍历中,进行判断:
    //如果该元素 有左上元素和上方元素,该元素的值 = 左上元素+上方元素
    //如果该元素 没有左上元素 或 没有上方元素, 该元素的值 = 1
    //3.1、定义左上方元素 p1 定义上方元素 p2 默认值0
    int p1=0,p2=0;
    //3.2、进行判断,是否存在左上方索引
    if(i-1>=0 && j-1>=0){
    p1 = arr[i-1][j-1];
    }
    //3.3、进行判断,是否存在上方索引
    if(i-1>=0){
    p2 = arr[i-1][j];
    }
    //3.4、判断左上方元素和上方元素是否存在,若存在,进行相加求元素值
    if(p1+p2!=0){
    arr[i][j] = p1+p2;
    }else{
    //3.5、若不存在,边界元素,元素值 = 1
    arr[i][j] = 1;
    }
    //4、判断完成,打印该元素即可
    System.out.print(arr[i][j]+"\t");
    }
    System.out.println();
    }
    }
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月2日
  • 已采纳回答 3月25日
  • 创建了问题 3月24日

悬赏问题

  • ¥15 软件定义网络mininet和onos控制器问题
  • ¥15 微信小程序 用oss下载 aliyun-oss-sdk-6.18.0.min client报错
  • ¥15 ArcGIS批量裁剪
  • ¥15 labview程序设计
  • ¥15 为什么在配置Linux系统的时候执行脚本总是出现E: Failed to fetch http:L/cn.archive.ubuntu.com
  • ¥15 Cloudreve保存用户组存储空间大小时报错
  • ¥15 伪标签为什么不能作为弱监督语义分割的结果?
  • ¥15 编一个判断一个区间范围内的数字的个位数的立方和是否等于其本身的程序在输入第1组数据后卡住了(语言-c语言)
  • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
  • ¥15 android 集成sentry上报时报错。