冒泡排序算法是对已知的数列进行从小到大的递增排序。

 题目描述冒泡排序算法是对已知的数列进行从小到大的递增排序每个实例输出两行,第一行输出第1轮结果, 第二行输出最终结果
它的排序方法如下:
1.对数列从头开始扫描,比较两个相邻的元素,如果前者大于后者,则交换两者位置
2.重复步骤1,直到没有发生数据交换位置
例子:对数列33 22 55 11 44用冒泡排序
一开始比较33和22, 因为33大于22,所以交换得到22和33;接着比较33和55符合,不交换;接着比较55和11,不符合所以交换位置;接着比较55和44,不符合所以交换位置
第1轮结果: 22 331144 55.
以此类推
第2轮结果: 22 11 33 44 55
第3轮结果: 11 22 33 4455
第4轮没有发生交换,所以结束扫描
输入
第一行输入t,表示有t个测试实例
第二行先输入N表示有N个数据,接着输入N各数据,以空格分开
输出
每个实例输出两行,第一-行输出第1轮结果, 第二行输出最终结果

 一开始用

 int n;
        scanf("%d", &n); // 输入数据的个数

        int arr[n];
        for (int i = 0; i < n; i++) {
            scanf("%d", &arr[i]); // 输入数据
        }

一直提示数组不能使用常量

编译器提示严重性 代码 说明 项目 文件 行 禁止显示状态
错误(活动) E0028 表达式必须含有常量值 Project2

在 C 语言中,数组的大小必须是一个常量表达式,不能是变量。

要解决这个问题,你可以尝试使用编译器支持的数组大小方式,例如使用宏定义或者动态分配数组内存。另外,如果你需要在运行时确定数组的大小,可以考虑使用动态数组(Dynamic Array)或者其他数据结构来代替固定大小的数组。

根据你提供的代码,错误提示确实出现在第 51 行。问题在于你使用了变量 n 来定义数组 arr 的大小,而在 C 语言中,数组的大小必须是一个常量表达式。

要解决这个问题,你可以使用动态内存分配来创建一个大小可变的数组。可以使用 malloc 函数动态分配内存,并在使用完数组后使用 free 函数释放内存。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
//malloc 函数的声明位于 <stdlib.h> 头文件中。如果你没有包含该头文件,编译器将无法识别 malloc 函数,从而导致错误。
//	冒泡排序算法 数列进行从小到大 递增排序。
//	 排序方法 
//  1.对数列从头开始扫描,比较两个相邻的元素, 如果前者大于后者, 则交换两者位置
//	2.重复步骤1, 直到没有发生数据交换位置
//	例子 : 对数列33 22 55 11 44用冒泡排序
//	一开始比较33和22, 因为33大于22, 所以交换得到22和33;接着比较33和55符合,不交换; 接着比较55和11, 不符合所以交换位置;接着比较55和44, 不符合所以交换位置
//	第1轮结果 : 22 33 11 44 55. 
//	第2轮结果 : 22 11 33 44 55
//	第3轮结果 : 11 22 33 44 55
//	第4轮没有发生交换, 所以结束扫描
//33 22 55 11 44
//22 33 11 44 55
//11 22 33 44 55 

void bubbleSort(int arr[], int n) {
    int i, j;
    int swapped; // 标记是否发生交换

    for (i = 0; i < n - 1; i++) {
        swapped = 0; // 初始化为未交换 
        // 从头开始扫描,比较相邻元素并交换
        for (j = 0; j < n - i - 1; j++) { 
            if (arr[j] > arr[j + 1]) {
                // 交换两个元素的位置
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
                swapped = 1; // 标记发生交换
            }
            
        } 
         
        if (i == 0) {
            // 输出第一轮结果
            for (int i = 0; i < n-1; i++) {
                printf("%d ", arr[i]);
            }
            printf("%d\n", arr[n - 1]);
        }
        // 如果本轮未发生交换,说明已经有序,提前结束
        if (swapped == 0) {
            break;
        }
    }
}  
int main() {
    int t;
    scanf("%d", &t); // 输入测试实例的个数

    while (t--) { 
        int n=0;
        scanf("%d", &n); // 输入数据的个数 
        //int arr[n];
        int* arr = (int*)malloc(n * sizeof(int)); // 动态分配数组内存 
        for (int i = 0; i < n; i++) {
            scanf("%d", &arr[i]); // 输入数据33 22 55 11 44
        }

        bubbleSort(arr, n); // 使用冒泡排序算法对数组进行排序

       

        // 输出最终结果
        for (int i = 0; i < n-1; i++) {
            printf("%d ", arr[i]);
        }
        printf("%d\n", arr[n - 1]);
        free(arr); // 释放动态分配的数组空间
    }

    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/206796.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

抖音本地生活服务商申请条件

抖音的本地生活服务商目前有两种&#xff0c;一种是可以做全国的服务商&#xff0c;我们一般叫抖音本地生活服务商&#xff0c;一种是区域优待服务商&#xff0c;也就是后面出来的服务商&#xff0c;这两种服务商的申请方式大同小异。 相同的地方就是都需要给平台交保证金。抖…

【深度学习实验】图像处理(三):PIL——自定义图像数据增强操作(随机遮挡、擦除、线性混合)

文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 导入必要的库1. PIL基础操作2. Cutout&#xff08;遮挡&#xff09;2.1 原理2.2 实现2.3 效果展示 3. Random Erasing&#xff08;随机擦除&#xff09;3.1 原理3.2 实现3.3 效果展示 4. Mixup&…

简单0成本构建一个企业内部的视频点播、培训直播、安防监控、录像管理于一体的数字视频管理体系

以前&#xff0c;企业要构建一套数字化的视频管理体系&#xff0c;把企业内部的各种视频文件、直播培训、安防监控视频都整合到一套流媒体音视频服务里面&#xff0c;实现统一的对外供货、对外赋能的方案&#xff0c;是很困难的&#xff01;因为&#xff0c;原来这都是好几个项…

jupyter notebook 添加环境与删除环境

添加环境 一、查看conda现有的环境 打开 Anaconda Powershell Prompt 输入以下代码&#xff0c;查看全部环境&#xff1a;conda env list 可以看到如下已经配置的环境变量&#xff1a; 二、激活现有环境 在 Anaconda Powershell Prompt 继续输入&#xff0c;激活环境&#…

【brpc学习实践十二】bthread

概览 bthread(代码)是baidu-rpc使用的M:N线程库,是其稳定和高效的关键组件。能更好地利用多核cpu,能在pthread中运行,需要注意的是,bthread的work stealing机制会da让任务pthread发生切换,从而让thread_local变量不可信,通常在bthread_usleep或这join的时候就有可能发生…

基于单片机的蔬菜大棚温湿度控制系统

1&#xff0e;设计任务 利用AT89C51单片机为核心控制元件,设计一个节日彩灯门&#xff0c;设计的系统实用性强、操作简单&#xff0c;实现了智能化、数字化。 本系统通过SHT11传感器测量出大棚内的温湿度&#xff0c;并将温湿度电信号传至单片机AT89C51,单片机系统通过预先设…

双向ESD保护 汽车级TVS二极管 ESD9B3.3ST5G工作原理、特性参数、封装形式

什么是汽车级TVS二极管&#xff1f; TVS二极管是一种用于保护电子电路的电子元件。它主要用于电路中的过电压保护&#xff0c;防止电压过高而损坏其他部件。TVS二极管通常被称为“汽车级”是因为它们能够满足汽车电子系统的特殊要求。 在汽车电子系统中&#xff0c;由于车辆启…

leetCode 78.子集 + 回溯算法 + 图解 + 笔记

给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的子集&#xff08;幂集&#xff09;。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[],[1],[2],[1,2],[3],[1…

智慧机场视频监控系统方案:AI智能助力机场智慧运营

一、方案背景 随着人们生活物质水平的上升&#xff0c;人们对机场的需求也日益增多&#xff0c;在民航新建、迁建、扩建机场项目猛增的同时&#xff0c;也需同步配备相应的安防监控系统&#xff0c;以满足民航机场安全管理要求和机场运营业务的高速发展。 二、方案概述 智慧机…

【服务部署】常用内网穿透方案

一、前言 由于一些开发及使用需求&#xff0c;需要将内网机器端口映射到公网&#xff0c;达到公网访问内网环境的目的 本文主要介绍几种常用的内网穿透方案 ssh远程端口转发 部署简单&#xff0c;无需额外安装软件包 frp反向代理 功能配置丰富&#xff0c;部署相对复杂&#…

frp 配置内网访问

frp介绍 frp 是一个开源、简洁易用、高性能的内网穿透软件&#xff0c;支持 tcp, udp, http, https 等协议。frp 项目官网是 https://github.com/fatedier/frp 下载地址&#xff1a; https://github.com/fatedier/frp/releases frp工作原理 服务端运行&#xff0c;监听一个…

键盘敲入一个字母,操作系统发生了什么?

一、设备控制器 我们的电脑设备可以接非常多的输入输出设备&#xff0c;比如鼠标键盘网卡硬盘打印机等&#xff0c;每个设备的用法和功能都不相同&#xff0c;那操作系统是如何把这些输入输出设备统一管理的呢&#xff1f; 为了屏蔽设备之间的差异&#xff0c;每个设备都有一…

前端项目环境的搭建

一、下载并且安装Node&#xff08;不安装node&#xff0c;就安装nvm。nvm安装教程&#xff09;&#xff1a; 1.官网下载Node&#xff1a;https://nodejs.org/en/ 2.测试nodejs安装是否成功&#xff1a; 在windows powerShell中输入node -v 和 npm -v&#xff0c;看到版本号就…

【23-24 秋学期】NNDL 作业9 RNN - SRN

简单循环网络&#xff08;Simple Recurrent Network&#xff0c;SRN&#xff09;只有一个隐藏层的神经网络&#xff0e; 目录 1. 实现SRN &#xff08;1&#xff09;使用Numpy &#xff08;2&#xff09;在1的基础上&#xff0c;增加激活函数tanh &#xff08;3&#xff0…

rabbitMQ镜像队列的使用

在rabbitMQ集群中&#xff0c;默认发送消息时&#xff0c;队列默认时在一个节点上存在的。 我们以node01 node02 node03三节点集群为例&#xff0c;在node01声明队列发送消息后&#xff0c;发现&#xff1a; 测试队列只在节点node01上出现。 我们手动停止node01后&#xff0c…

#HarmonyOS:软件安装window和mac预览Hello World

Window软件地址 https://developer.harmonyos.com/cn/develop/deveco-studio#download 安装的建议 这个界面这样选&#xff0c;其他界面全部按照默认路径往下走&#xff01;&#xff01;&#xff01; 等待安装… 安装环境错误处理 一般就是本地node配置异常导致&#xff…

Nginx基线检查

扩展知识: Nginx主配置文件:/etc/nginx/nginx.conf 这是Nginx的主要配置文件,用于配置全局的设置、HTTP块、事件处理、邮件等内容。 打开并编辑配置文件 vim /etc/nginx/nginx.conf 一、关于禁止显示服务器版本号和操作系统版本信息: 简介: 在错误页面和响应头中显示…

SAP_ABAP_编程基础_逻辑流控制_比较运算符 / 比较字符串和数字串 / 比较二进制位结构 / 编程分支和循环

SAP ABAP 顾问&#xff08;开发工程师&#xff09;能力模型_Terry谈企业数字化的博客-CSDN博客文章浏览阅读470次。目标&#xff1a;基于对SAP abap 顾问能力模型的梳理&#xff0c;给一年左右经验的abaper 快速成长为三年经验提供超级燃料&#xff01;https://blog.csdn.net/j…

html/css中用float实现的盒子案例

运行效果&#xff1a; 代码部分&#xff1a; <!doctype html> <html> <head> <meta charset"utf-8"> <title>无标题文档</title> <style type"text/css">.father{width:300px; height:400px; background:gray;…

云轴科技ZStack助力龙芯打造IT产业新生态

11月28日&#xff0c;2023龙芯产品发布暨用户大会在国家会议中心启幕。大会以“到中流击水”为主题&#xff0c;现场发布新一代通用处理器龙芯3A6000、打印机主控芯片龙芯2P0500重磅成果&#xff0c;并对外公布龙芯处理器核IP及龙芯自主指令系统架构授权计划。作为龙芯的卓越行…