C基础寒假练习(1)

news2025/2/23 22:18:25

一、求二维数组只中元并输出行标和列标(以二行三列为例)元素的最大值,

#include <stdio.h>

int main()
{
    // 初始化二维数组
    int array[2][3] =
 {
        {1, 2, 3},
        {4, 5, 6}
  };

    // 定义变量来存储最大值及其位置
    int max_value = array[0][0];
    int max_row = 0;
    int max_col = 0;

    // 遍历二维数组以找到最大值及其位置
    for (int i = 0; i < 2; i++)
  {
        for (int j = 0; j < 3; j++)
       {
            if (array[i][j] > max_value) 
           {
                max_value = array[i][j];
                max_row = i;
                max_col = j;
            }
        } 
    }

    // 输出最大值及其位置
    printf("最大值: %d\n", max_value);
    printf("行标: %d\n", max_row);
    printf("列标: %d\n", max_col);

    return 0;
}

代码解释:
初始化二维数组:我们定义了一个2行3列的二维数组 array。
定义变量:max_value 用于存储当前找到的最大值,max_row 和 max_col 分别用于存储最大值所在的行标和列标。
遍历数组:使用嵌套的 for 循环遍历整个二维数组。如果发现某个元素比当前的 max_value 大,则更新 max_value 以及对应的 max_row 和 max_col。
输出结果:最后,打印出最大值及其所在的行标和列标。
你可以根据需要修改数组的大小和内容,程序的逻辑是通用的。

二、定义一个数组,要求长度使用宏定义,终端输入数组中的数据,实现冒泡排序,/添加标志位,标志位要求,终端输入,如果输入1,升序,输入0降序。

#include <stdio.h>

// 宏定义数组长度
#define num 10

int main()
{
    int array[num];
    int i, j, temp, order;

    // 输入数组数据
    printf("请输入 %d 个整数:\n", num);
    for (i = 0; i < num; i++)
   {
        scanf("%d", &array[i]);
    }

    // 输入排序顺序标志位
    printf("请输入排序顺序(1 表示升序,0 表示降序):");
    scanf("%d", &order);

    // 冒泡排序逻辑
    for (i = 0; i < num - 1; i++)
   {
        for (j = 0; j < num - i - 1; j++)
       {
            if (order) 
            { // 升序
                if (array[j] > array[j + 1]) 
               {
                    temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                
               }
            } 
               else 
             { // 降序
                if (array[j] < array[j + 1]) 
               {
                    temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
             }
        }
    }

    // 输出排序后的数组
    printf("排序后的数组:\n");
    for (i = 0; i < num; i++) 
   {
        printf("%d ", array[i]);
   }
    printf("\n");
    return 0;
}

宏定义和变量声明

#define num 10

这行代码使用宏定义将 num 定义为 10,表示数组的长度是 1

int array[num]; int i, j, temp, order;

在主函数中,声明了一个长度为 num(即 10)的整数数组 array,以及一些辅助变量 i, j, temp, order

输入数组数据

printf("请输入 %d 个整数:\n", num);
for (i = 0; i < num; i++) 
{
    scanf("%d", &array[i]);
}

提示用户输入 10 个整数,并将这些整数存储到数组 array 中。

输入排序顺序标志位

printf("请输入排序顺序(1 表示升序,0 表示降序):");
scanf("%d", &order);

提示用户输入排序顺序,1 表示升序,0 表示降序,并将这个值存储到变量 order 中。

冒泡排序逻辑

for (i = 0; i < num - 1; i++) 
{
    for (j = 0; j < num - i - 1; j++) 
     {
        if (order) { // 升序
            if (array[j] > array[j + 1])
           {
                temp = array[j];
                array[j] = array[j + 1];
                array[j + 1] = temp;
            }
        }
          else { // 降序
            if (array[j] < array[j + 1])
             {
                temp = array[j];
                array[j] = array[j + 1];
                array[j + 1] = temp;
             }
        }
     }
}

这部分代码实现了冒泡排序算法。外层循环控制排序的轮数,内层循环进行相邻元素的比较和交换。根据 order 的值决定是升序还是降序排序:

  • 如果 order 为 1,则进行升序排序。如果当前元素大于下一个元素,则交换它们的位置。
  • 如果 order 为 0,则进行降序排序。如果当前元素小于下一个元素,则交换它们的位置。

输出排序后的数组

printf("排序后的数组:\n");
for (i = 0; i < num; i++) {
    printf("%d ", array[i]);
}
printf("\n");

最后,输出排序后的数组。遍历数组并打印每个元素。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SQLServer 不允许保存更改(主键)

在我们进行数据库表格编辑的时候,往往会出现同一个名字,就比如我们的账号一样,我们在注册自己QQ的时候,我们通常注册过的账号,别人就不能注册了,这是为了保证严密性 所以我们需要点击表格>右键>设计 点击某一列>右键>设计主键 当我们Ctrls 保存的时候回弹出下…

linux监控脚本+自动触发邮件发送

linux脚本 需求&#xff1a; CPU 负载&#xff1a;使用 uptime 命令&#xff0c;我们可以清楚地了解系统的 CPU 负载情况。这个命令会显示系统在过去 1 分钟、5 分钟和 15 分钟的平均负载。高负载可能意味着系统正在处理大量的任务&#xff0c;可能会导致性能下降或服务响应延迟…

Ollama本地部署deepseek-r1:7b

Ollama本地部署deepseek-r1:7b RTX2060 6GB显存可运行。 一、下载安装ollama ollama地址 二、设置环境变量 您可以右键点击“此计算机” > “切换到管理员”&#xff0c;然后以管理员身份运行 cmd setx OLLAMA_HOST 0.0.0.0 setx OLLAMA_ORIGINS *三、然后重启ollama …

2. Java-MarkDown文件解析-工具类

2. Java-MarkDown文件解析-工具类 1. 思路 读取markdown文件的内容&#xff0c;根据markdown的语法进行各个类型语法的解析。引入工具类 commonmark 和 commonmark-ext-gfm-tables进行markdown语法解析。 2. 工具类 pom.xml <!-- commonmark 解析markdown --> <d…

研发的立足之本到底是啥?

0 你的问题&#xff0c;我知道&#xff01; 本文深入T型图“竖线”的立足之本&#xff1a;专业技术 技术赋能业务能力。研发在学习投入精力最多&#xff0c;也误区最多。 某粉丝感发展遇到瓶颈&#xff0c;项目都会做&#xff0c;但觉无提升&#xff0c;想跳槽。于是&#x…

react中如何获取dom元素

实现代码 const inputRef useRef(null) inputRef.current.focus()

19.Word:小马-校园科技文化节❗【36】

目录 题目​ NO1.2.3 NO4.5.6 NO7.8.9 NO10.11.12索引 题目 NO1.2.3 布局→纸张大小→页边距&#xff1a;上下左右插入→封面&#xff1a;镶边→将文档开头的“黑客技术”文本移入到封面的“标题”控件中&#xff0c;删除其他控件 NO4.5.6 标题→原文原文→标题 正文→手…

DeepSeek回答量化策略对超短线资金的影响

其实最近很长一段时间我在盘中的感受就是量化策略的触发信号都是超短线选手经常用到的,比如多个题材相互卡位,近期小红书-消费,好想你,来伊份 跟 算力 电光科技,机器人 金奥博 冀凯股份 五洲新春 建设工业 ,这些票的波动其实都是被量化策略锚定了,做成了策略异动。特别…

无耳科技 Solon v3.0.7 发布(2025农历新年版)

Solon 框架&#xff01; Solon 框架由杭州无耳科技有限公司&#xff08;下属 Noear 团队&#xff09;开发并开源。是新一代&#xff0c;面向全场景的 Java 企业级应用开发框架。从零开始构建&#xff08;非 java-ee 架构&#xff09;&#xff0c;有灵活的接口规范与开放生态。…

常见的多媒体框架(FFmpeg GStreamer DirectShow AVFoundation OpenMax)

1.FFmpeg FFmpeg是一个非常强大的开源多媒体处理框架&#xff0c;它提供了一系列用于处理音频、视频和多媒体流的工具和库。它也是最流行且应用最广泛的框架&#xff01; 官方网址&#xff1a;https://ffmpeg.org/ FFmpeg 的主要特点和功能&#xff1a; 编解码器支持: FFmpe…

本地部署Deepseek R1

最近Deepseek R1模型也是彻底火出圈了&#xff0c; 但是线上使用经常会受到各种限制&#xff0c;有时候还会连不上&#xff0c;这里我尝试本地部署了Deepseek 的开源R1模型&#xff0c;具体的操作如下&#xff1a; 首先登陆ollama平台&#xff0c;Ollama.ollama平台是一个开源…

深入解析 .NET 命名管道技术, 通过 Sharp4Tokenvator 实现本地权限提升

01. 管道访问配置 在 .NET 中通常使用 PipeSecurity 类为管道设置访问控制规则&#xff0c;用于管理命名管道的访问控制列表&#xff08;ACL&#xff09;。通过这个类&#xff0c;可以为命名管道配置精细化的安全权限&#xff0c;从而控制哪些用户或用户组能够访问管道&#x…

Cesium ArcGisMapServerImageryProvider API 介绍

作为一名GIS研究生&#xff0c;WebGIS 技术无疑是我们必学的核心之一。说到WebGIS&#xff0c;要提的就是 Cesium —— 这个让3D地球可视化变得简单又强大的工具。为了帮助大家更好地理解和使用 Cesium&#xff0c;我决定把我自己在学习 Cesium 文档过程中的一些心得和收获分享…

登录授权流程

发起一个网络请求需要&#xff1a;1.请求地址 2.请求方式 3.请求参数 在检查中找到request method&#xff0c;在postman中设置同样的请求方式将登录的url接口复制到postman中&#xff08;json类型数据&#xff09;在payload中选择view parsed&#xff0c;将其填入Body-raw中 …

Python设计模式 - 组合模式

定义 组合模式&#xff08;Composite Pattern&#xff09; 是一种结构型设计模式&#xff0c;主要意图是将对象组织成树形结构以表示"部分-整体"的层次结构。这种模式能够使客户端统一对待单个对象和组合对象&#xff0c;从而简化了客户端代码。 组合模式有透明组合…

【深度学习】图像分类数据集

图像分类数据集 MNIST数据集是图像分类中广泛使用的数据集之一&#xff0c;但作为基准数据集过于简单。 我们将使用类似但更复杂的Fashion-MNIST数据集。 %matplotlib inline import torch import torchvision from torch.utils import data from torchvision import transfo…

【四川乡镇界面】图层shp格式arcgis数据乡镇名称和编码2020年wgs84无偏移内容测评

本文将详细解析标题和描述中提到的IT知识点&#xff0c;主要涉及GIS&#xff08;Geographic Information System&#xff0c;地理信息系统&#xff09;技术&#xff0c;以及与之相关的文件格式和坐标系统。 我们要了解的是"shp"格式&#xff0c;这是一种广泛用于存储…

ubuntu解决普通用户无法进入root

项目场景&#xff1a; 在RK3566上移植Ubuntu20.04之后普通用户无法进入管理员模式 问题描述 在普通用户使用sudo su试图进入管理员模式的时候报错 解决方案&#xff1a; 1.使用 cat /etc/passwd 查看所有用户.最后一行是 若无用户&#xff0c;则使用 sudo useradd -r -m -s /…

第3章 基于三电平空间矢量的中点电位平衡策略

0 前言 在NPC型三电平逆变器的直流侧串联有两组参数规格完全一致的电解电容,由于三电平特殊的中点钳位结构,在进行SVPWM控制时,在一个完整开关周期内,直流侧电容C1、C2充放电不均匀,各自存储的总电荷不同,电容电压便不均等,存在一定的偏差。在不进行控制的情况下,系统无…

网络工程师 (8)存储管理

一、页式存储基本原理 &#xff08;一&#xff09;内存划分 页式存储首先将内存物理空间划分成大小相等的存储块&#xff0c;这些块通常被称为“页帧”或“物理页”。每个页帧的大小是固定的&#xff0c;例如常见的页帧大小有4KB、8KB等&#xff0c;这个大小由操作系统决定。同…