一个很基本的冒泡排序问题

输入数字之后,就不动了,卡这了


#include <stdio.h>
int main()
{
    int a[15];
    int i,j,t;
    for(i=0;i<15;i++)
    {
        scanf("%d",&a[i]);
    }
     
    //冒泡排序
    for(i=0;i<15-1;i++)//n个数的数列总共扫描n-1次
    {
        for(j=0;j<15-i-1;j++)//每一趟扫描到a[n-i-2]与a[n-i-1]比较为止结束
        {
            if(a[j]>a[j+1])//后一位数比前一位数小的话,就交换两个数的位置(升序)
            {
               t=a[j+1];
               a[j+1]=a[j];
               a[j]=t;
            }
        }
    }
 
    printf("排列好的数列是:\n");
    //输出排列好得吃数列
    for(i=0;i<15;i++)
    {
        printf("%d ",a[i]);
    }
    return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7499739
  • 你也可以参考下这篇文章:编写一个函数,计算任一输入的整数的各位数字之和
  • 除此之外, 这篇博客: 计算机大一新生,想卷却找不到方向,恳请前辈指指路?中的 计算机组成原理 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    深入理解计算机系统(原书第3版)

    这是一本很深入和方向性的书,每个 CS 学子都应该去读,它会告诉你,要想成为一个优秀的程序员,你应当重点理解哪些计算机底层原理。

    其他书籍:

    《计算机组成原理与设计》。

    1. 计算机组成原理 清华大学刘卫东 全58讲 国家精品课程

    https://www.bilibili.com/video/BV1c4411w7nd?p=1

    1. 计算机组成原理(哈工大刘宏伟)135讲(全)高清

    https://www.bilibili.com/video/BV1t4411e7LH?p=1

    现代操作系统(第3版)

    本书是操作系统领域的经典之作,讲的全面详细,包括进程、线程、存储管理、文件系统、I/O、死锁、接口设计、多媒体、性能权衡,以及有关操作系统设计的最新趋势。不仅涵盖了现代操作系统的原理和实践,而且特别关注了Linux操作系统、Windows Vista操作系统、嵌入式操作系统、实时操作系统以及多媒体操作系统。所以也是面试笔试操作系统的宝典。

    其他书籍:

    《操作系统真象还原》、《30天自制操作系统》。

    1. 操作系统(哈工大李治军老师)32讲(全)超清

    https://www.bilibili.com/video/BV1d4411v7u7?p=1

    1. 2020 南京大学 “操作系统:设计与实现” (蒋炎岩)

    https://www.bilibili.com/video/BV1N741177F5?p=1

    刚工作的时候第一个项目就是物联网后台服务器软件,网络上也有类似的网络服务程序,比如即时聊天软件的后台服务器,网游服务器,金融交易系统,互联网企业用的分布式海量存储,微博发帖的内部广播通知等等。当然在嵌入式系统上也有移植或维护 TCP/IP 协议栈等等。

    • 熟悉掌握一些网络模型,例如 WINDOWS 系统下使用的 IOCP。Linux系统下使用的 Epoll、select、poll模型。

    • 熟悉一些通用库例如 ocket Server,RPC Framework

    • 内存管理。重载new/delete,内存池,对象池的处理。

    • 内存泄露检测,内存访问越界警惕,内存碎片的回收。

    • 预分配池减少切换和调度,预处理的线程池和连接池,例如数据库连接池等。

    • 多进程编程、多线程编程

    • 五大 IO 模型:同步、异步、阻塞、非阻塞、信号驱动

    • 进程间通信方式: 信号量、管道、共享内存、socket 等

    • 线程安全问题,锁处理、临界资源

    • 负载均衡理念,数据的提前准备和即时计算,如果有耗时的业务可以考虑微服务,负载均衡。

    • 定时器、心跳、定时检查死链接等等

  • 您还可以看一下 张传波老师的软件设计是怎样炼成的?课程中的 架构设计的第一层拆解小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    冒泡排序算法是一种简单的排序算法,它的核心思想是通过不断交换相邻的元素,把较大或较小的元素逐渐“冒泡”到数组的一端。为了解决你遇到的问题,你可以按照以下步骤进行排查和修复:

    1. 检查输入的数字是否正确。

    确保你输入的数字在适当的范围内,并且没有输入非数字字符。可以使用代码来验证输入是否是数字,如下所示: ```python def is_numeric(value): try: float(value) return True except ValueError: return False

    numbers = input("请输入一组数字,用空格分隔: ").split() valid_numbers = [number for number in numbers if is_numeric(number)] ```

    1. 检查冒泡排序算法的实现。

    确保你的冒泡排序算法实现正确。冒泡排序的基本思路是通过比较相邻的两个元素,如果它们的顺序不符合要求,则交换它们的位置。你可以使用以下代码作为冒泡排序算法的初始实现: ```python def bubble_sort(numbers): n = len(numbers) for i in range(n-1): for j in range(n-i-1): if numbers[j] > numbers[j+1]: numbers[j], numbers[j+1] = numbers[j+1], numbers[j]

    bubble_sort(valid_numbers) ```

    1. 添加适当的调试语句。

    在冒泡排序算法的实现中添加一些调试语句,以便定位问题所在。你可以在比较和交换操作之后打印数组的中间结果,如下所示: ```python def bubble_sort(numbers): n = len(numbers) for i in range(n-1): for j in range(n-i-1): if numbers[j] > numbers[j+1]: numbers[j], numbers[j+1] = numbers[j+1], numbers[j] print(numbers)

    bubble_sort(valid_numbers) ```

    运行代码后,你可以观察到每一次比较和交换操作的结果,以确定算法是否按预期工作。

    1. 检查程序是否陷入无限循环。

    如果程序没有输出结果,可能是因为你的算法陷入了无限循环。这可能是由于算法实现中的某些逻辑错误导致的。你可以检查冒泡排序算法中的循环条件和循环变量是否正确设置,以确定是否存在无限循环的情况。

    如果你尝试了上述步骤但问题仍然存在,可能需要更详细地了解你的代码和输入情况,或者考虑重新设计算法。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

代码应该没问题,可能是输入有问题。
如果有用的话,麻烦采纳回答,谢谢·。

代码没看出大问题,你怎么输入的呢,是输入一个数字按下一个回车么
数字和数字是有空格的么