惠安雪乃 2022-07-18 21:21 采纳率: 60%
浏览 48
已结题

Java数组赋值不成功

问题遇到的现象和发生背景

冒泡排序算法

问题相关代码,请勿粘贴截图
import java.util.Scanner;

public class exercise3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int a[] = new int[n];
        for(int i=0; i<n; i++){
            a[i] = sc.nextInt();
        }
        for(int i=0; i<n; i++){
            System.out.print(a[i]+'\t');
        }
        //从小到大排序
        for(int i=0; i<n-1; i++){
            for(int j=i; j<n-i; j++){
                if(a[i]>a[i+1]){
                    int A = a[i];
                    a[i] = a[i+1];
                    a[i+1] = A;
                }
            }
        }
        for(int i=0; i<n; i++){
            System.out.print(a[i]+'\t');
        }
    }
}
运行结果及报错内容

5
1 2 3 5 4
10111214131011121413

我的解答思路和尝试过的方法

这里先不讨论算法正确与否,但是数组赋值那里总会复制不成功,

我想要达到的结果

得到正确的赋值结果

  • 写回答

2条回答 默认 最新

  • it_hao528 2022-07-18 22:43
    关注

    1、数组赋值那里没问题,问题出在打印System.out.print(a[i]+'\t');这里,print是打印不换行,a[i]+'\t'是数字加字符会自动将字符转换为ASSIC码对应的值,这里'\t'对应的是9,所以a[i]+'\t'是一个加法计算结果是a[i]+9,并不是a[i]+空格。
    2、要实现a[i]+空格的打印应该是System.out.print(a[i]+"\t"); a[i]+"\t"相当于数字加字符串会自动将数组转换为字符串。
    3、冒泡排序有点问题,内循环应该是j < n,要不最后一个数不会进行排序。修改之后的代码如下:

     public static void main(String[] args) {
         Scanner sc = new Scanner(System.in);
         int n = sc.nextInt();
         int a[] = new int[n];
         for (int i = 0; i < n; i++) {
             a[i] = sc.nextInt();
         }
         for (int i = 0; i < n; i++) {
             System.out.print(a[i]+"\t");
         }
         System.out.println();
         //从小到大排序
         for (int i = 0; i < n - 1; i++) {
             for (int j = i; j < n; j++) {
                 if (a[i] > a[i + 1]) {
                     int A = a[i];
                     a[i] = a[i + 1];
                     a[i + 1] = A;
                 }
             }
         }
         for (int i = 0; i < n; i++) {
             System.out.print(a[i]+"\t");
         }
     }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月27日
  • 已采纳回答 7月19日
  • 创建了问题 7月18日

悬赏问题

  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加