C语言基础------练习

server/2025/1/24 22:42:03/

1.求二维数组中元素的最大值,并输出行标和列标

        代码运行结果:

        代码实现解析:

//定义并初始化二维数组int arr[3][4] = {{1, 2, 3, 4},{5, 6, 7, 8},{9, 10, 11, 12}};
//这里定义了一个3行4列的二维数组,并初始化了其元素。//初始化最大值及其行标和列标int max_value = arr[0][0]; // 假设第一个元素是最大值
int max_row = 0;
int max_col = 0;
//假设第一个元素是最大值,并初始化行标和列标为0。//遍历二维数组//for (int i = 0; i < 3; i++) 
{for (int j = 0; j < 4; j++) 
{if (arr[i][j] > max_value) 
{max_value = arr[i][j];max_row = i;max_col = j;}}
}
//使用嵌套的 for 循环遍历二维数组中的每个元素。如果当前元素大于 max_value,则更新 max_value 及其对应的行标和列标。//输出结果printf("最大值是 %d,位于第 %d 行,第 %d 列\n", max_value, max_row, max_col);
打印最大值及其所在的行标和列标。运行结果
最大值是 12,位于第 2 行,第 3 列

2.定义一个数组,要求长度使用宏定义,终端输入数组中的数据,实现冒泡排序

a.//添加标志位,标志位要求,终端输入,如果输入1,升序,输入0降序。

        代码运行结果:

        代码实现解析:

//宏定义数组长度
#define ARRAY_SIZE 5
//使用宏定义数组的长度为5。//主函数int main(int argc, const char *argv[])
{int arr[ARRAY_SIZE];int i, j, temp;int ascending;// 输入数组元素printf("请输入 %d 个整数:\n", ARRAY_SIZE);for (i = 0; i < ARRAY_SIZE; i++) 
{printf("元素 %d: ", i + 1);scanf("%d", &arr[i]);}// 输入排序标志位printf("请输入排序标志位(1 升序,0 降序): ");scanf("%d", &ascending);// 冒泡排序for (i = 0; i < ARRAY_SIZE - 1; i++) 
{for (j = 0; j < ARRAY_SIZE - i - 1; j++) 
{if ((ascending && arr[j] > arr[j + 1]) || (!ascending && arr[j] < arr[j + 1])) {// 交换 arr[j] 和 arr[j + 1]temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}// 输出排序后的数组printf("排序后的数组:\n");for (i = 0; i < ARRAY_SIZE; i++) 
{printf("%d ", arr[i]);}printf("\n");return 0;
}
/*定义数组 arr 并输入其元素。
输入排序标志位 ascending。
使用嵌套的 for 循环实现冒泡排序:
外层循环控制遍历的次数。
内层循环进行相邻元素的比较和交换。
根据标志位 ascending 决定比较和交换的条件。
输出排序后的数组。
运行示例
假设用户输入如下:请输入 5 个整数:
元素 1: 5
元素 2: 3
元素 3: 8
元素 4: 1
元素 5: 4
请输入排序标志位(1 升序,0 降序): 1
输出将是:排序后的数组:
1 3 4 5 8 
如果用户输入排序标志位为0:请输入排序标志位(1 升序,0 降序): 0
输出将是:排序后的数组:
8 5 4 3 1 
*/


http://www.ppmy.cn/server/161123.html

相关文章

人形机器人,自动驾驶“老炮”创业第二站

造一台人形机器人&#xff0c;或许正在成为2025年最炙手可热的事情。 从去年第四季度开始&#xff0c;伴随着大模型应用的深入&#xff0c;具身智能概念被点燃&#xff0c;其中最鲜明的一个特点是&#xff0c;大量自动驾驶大佬的转行加入。 随便说几个比较有分量的&#xff0…

Jenkins邮件通知的详细配置含邮件通知模板!

文章目录 Jenkins 汉化Jenkins 如何配置邮件发送下载 Email Extension Template Plugin 插件邮件具体配置邮件主题模板java testng 模板python pytest 模板 在具体项目中如何使用&#xff1f; 安装Jenkins的详细操作请看&#xff1a; 如何在linux上安装Jenkins Jenkins 汉化 …

React Context 实现全局组件注册

来源于GPT4o&#xff1a;https://ai.openaicloud.cn/?inVitecodeEJSTWFZMQE 第一步&#xff1a;创建全局组件上下文 (GlobalComponentProvider) 我们将创建一个 React Context 和 Provider&#xff0c;用于存储和提供全局组件。 // src/context/GlobalComponentProvider.tsx…

直驱式风电储能制氢仿真模型matlab/simulink

接着还是以直驱式风电为DG中的研究对象&#xff0c;上篇博客考虑的风电并网惯性的问题&#xff0c;这边博客主要讨论功率消纳的问题。 考虑到风速是随机变化的&#xff0c;导致风电输出功率的波动性和间歇性问题突出&#xff1b;随着其应用规模的不断扩大以及风电在电网中渗透率…

Linux容器(初学了解)

目录 一、容器 1.1、容器技术 1.2、容器和虚拟机之间的差异 1.3、Rootless 和 Rootful 容器 1.4、设计基于容器的架构 1.5、容器管理工具 1.6、容器镜像和注册表 1.7、配置容器注册表 1.8、使用容器文件构建容器镜像 二、部署容器 2.1、Podman 实用程序 2.2、安装容…

【JDBC】数据库连接的艺术:深入解析数据库连接池、Apache-DBUtils与BasicDAO

文章目录 前言&#x1f30d; 一.连接池❄️1. 传统获取Conntion问题分析❄️2. 数据库连接池❄️3.连接池之C3P0技术&#x1f341;3.1关键特性&#x1f341;3.2配置选项&#x1f341;3.3使用示例 ❄️4. 连接池之Druid技术&#x1f341; 4.1主要特性&#x1f341; 4.2 配置选项…

C++语言的区块链

C语言的区块链实现 区块链技术作为一种新兴的分布式账本技术&#xff0c;近年来在金融、供应链管理、身份认证等多个领域得到了广泛关注与应用。C语言因其高性能和精细的资源管理能力&#xff0c;成为实现区块链技术的重要选择之一。本文将探讨C语言在区块链中的应用以及如何使…

苍穹外卖 项目记录 day07 商品缓存-购物车模块开发

文章目录 前言清理缓存数据Spring Cache 和常用注解缓存套餐添加购物车查看购物车清空购物车 前言 将商品信息放进redis缓存 Spring Cache技术 系统查询性能 用户端访问量过大 数据库访问压力随之增大 系统响应慢 使用Redis 缓存菜品数据 减少数据库查询 基于内存保存数据 …