【C刷题】矩阵相等判断与序列中删除指定的数字

news2024/11/17 0:05:24

目录

BC105-矩阵相等判断

方法1:两矩阵输入完毕后,进行比较

方法2:在接收过程中直接比较

BC98 - 序列中删除指定的数字

方法1:把要删除的元素改为0

方法2:打印不用删除的元素

方法3:定义两个下标 i 和 j(动图演示)


此篇文章是关于牛客网刷题的做题思路和代码分享,感谢来访与指点。

C99标准之前:
数组的大小只能是常量来指定int arr[10]

C99支持常量指定数组大小,也支持变长数组。

C99标准中,引入一个: 变长数组的概念,变长数组允许数组的大小使用变量来指定。

int n = 10;

int arr[n];

需要注意变长数组的点:

需要注意的是,使用变长数组的时候,数组的大小必须在定义时就确定,因此不能在定义后再改变数组的大小。

用我之前做过的题来说明一下:

正确写法:先有n的输入,然后再使用n。

int n=0;
scanf("%d",&n);
int arr[n];

错误写法: n已经使用过了,再输入就没用了。

int n=0;
int arr[n];
scanf("%d",&n);//这样写是错误的。

BC105-矩阵相等判断

题目的意思:

题目的意思说简单点就是,要求第一次输入的时候输入这个矩阵到底有几行几列,接着输入第一个矩阵的元素,接着输入第二个矩阵的元素,若两矩阵元素全部相等,则输出“Yes”,否则有一个不相等的元素则输出“NO”

方法1:两矩阵输入完毕后,进行比较

思路:

1.输入矩阵的行数和列数,

2.接着用一个for循环输入元素,数组记为arr1。

3.另一个用一个for循环输入元素,数组记为arr2。

4.定义一个flag作为判断矩阵是否相等的条件

5.两矩阵进行比较,若两矩阵之间有不相等的元素,就把flag=0,接着用goto语句跳出循环。

6.打印Yes or No。

#include <stdio.h>
 int main() {
     int n=0;
     int m=0;
     scanf("%d %d",&n,&m);
     int arr1[n][m];
     int arr2[n][m];
     int i=0;
     int j=0;
//接收第1个数组的内容
     for(i=0;i<n;i++)
     {
       for(j=0;j<m;j++)
        {
           scanf("%d",&arr1[i][j]);
        }
     } 
     //接收第2个数组的内容
     for(i=0;i<n;i++)
     {   
           for(j=0;j<m;j++)
        {
           scanf("%d",&arr2[i][j]);
        }
     } 
     //比较
    int flag=1;//假设是相等的
     for(i=0;i<n;i++)
     {
       for(j=0;j<m;j++)
        {
            if(arr1[i][j]!=arr2[i][j])
            {
                flag=0;
                goto end;
            }
        }
     }
 end:
     if(flag==1)
        printf("Yes\n");
     else
        printf("No\n");
     return 0;
 }

提交: 

方法2:在接收过程中直接比较

int main() {
    int n=0;
    int m=0;
    scanf("%d %d",&n,&m);
    int arr1[n][m];
    int i=0;
    int j=0;
 //接收第一个数组的内容
    for(i=0;i<n;i++)
    {
          for(j=0;j<m;j++)
       {
          scanf("%d",&arr1[i][j]);
       }
    } 
    //接收第2个数组的内容,并比较
   int tmp=0;
   int flag=1;//假设是相等的
    for(i=0;i<n;i++)
    {
      for(j=0;j<m;j++)
       {
          scanf("%d",&tmp);
          if(tmp != arr1[i][j])
           {
             flag=0;
             goto end;
           }
       }
    }
end:
    if(flag==1)
    printf("Yes\n");
      else
      printf("No\n");
    return 0;
}

执行:

BC98 - 序列中删除指定的数字

方法1:把要删除的元素改为0

思路:

1.先定义数组大小为n,接着通过for循环输入数组的元素。

2.定义变量del作为要删除的元素,输入要删除的元素。遍历数组,若此刻arr[i]遇到del,则把arr[i]改成0

3.把输入的数组里面不为0的元素全打印了。

int main() {
   int n=0;
   int m=0;
   scanf("%d",&n);
   int arr[n];
   int i=0;
    for(i=0;i<n;i++)
    {
        scanf("%d",&arr[i]);
    }
    int del=0;
    scanf("%d",&del);
   for(i=0;i<n;i++)
   {
        if(arr[i]==del)
            arr[i]=0;//将要删除的元素改为0
   }
    for(i=0;i<n;i++)
      {
    if(arr[i]!=0)//打印不是0的元素
      {
        printf("%d ",arr[i]);
      }
   }
    return 0;
}

 

方法2:打印不用删除的元素

思路:输入要删除的元素del之后,直接打印数组,用一个判断条件跳过要删除的元素,打印其它不用删除的。

int main() {
   int n=0;
   int m=0;
   scanf("%d",&n);
   int arr[n];
   int i=0;
    for(i=0;i<n;i++)
    {
        scanf("%d",&arr[i]);
    }
    int del=0;
    scanf("%d",&del);
    for(i=0;i<n;i++)
   {
    if(arr[i]!=del)
      {
        printf("%d ",arr[i]);
      }
   }
    return 0;
}

方法3:定义两个下标 i 和 j(动图演示)

动图演示的过程:

#include<stdio.h>
int main()
{
   int n=0;
   //int m=0;
   scanf("%d",&n);
   int arr[n];
    int i=0;
    int j=0;
    for(i=0;i<n;i++)
      {
        scanf("%d",&arr[i]);
      }
     int del=0;
     scanf("%d",&del);
     for(i=0;i<n;i++)
     {
       if(arr[i]!=del)
        {
            arr[j++]=arr[i];
        }
      }
     for(i=0;i<j;i++)
        {
            printf("%d ",arr[i]);
        }
      return 0;
}

 本篇结束,若有错误,欢迎大家指正,感谢支持!

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

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

相关文章

Java版知识付费平台免费搭建 前后端分离实现知识付费平台

提供职业教育、企业培训、知识付费系统搭建服务。系统功能包含&#xff1a;录播课、直播课、题库、营销、公司组织架构、员工入职培训等。 提供私有化部署&#xff0c;免费售后&#xff0c;专业技术指导&#xff0c;支持PC、APP、H5、小程序多终端同步&#xff0c;支持二次开发…

大模型开发(十一):Chat Completions模型的Function calling功能详解

全文共5000余字&#xff0c;预计阅读时间约15~25分钟 | 满满干货(附代码案例)&#xff0c;建议收藏&#xff01; 本文目标&#xff1a;介绍Chat Completions模型的Function calling参数和使用方法&#xff0c;并完整的实现一个Chat模型的Function calling功能案例。 代码下载地…

字节跳动 EB 级 Iceberg 数据湖的机器学习应用与优化

深度学习的模型规模越来越庞大&#xff0c;其训练数据量级也成倍增长&#xff0c;这对海量训练数据的存储方案也提出了更高的要求&#xff1a;怎样更高性能地读取训练样本、不使数据读取成为模型训练的瓶颈&#xff0c;怎样更高效地支持特征工程、更便捷地增删和回填特征。本文…

Java IO,BIO、NIO、AIO

操作系统中的 I/O 以上是 Java 对操作系统的各种 IO 模型的封装&#xff0c;【文件的输入、输出】在文件处理时&#xff0c;其实依赖操作系统层面的 IO 操作实现的。【把磁盘的数据读到内存种】操作系统中的 IO 有 5 种&#xff1a; 阻塞、 非阻塞、【轮询】 异步、 IO复…

STM32的SDIO功能框图及SDIO结构体

目录 STM32的SDIO功能框图及SDIO结构体 STM32的SDIO功能框图 SDIO适配器 命令路径 CPSM状态机 数据路径 DPSM状态机 数据FIFO 适配器寄存器 SDIO相关结构体 SDIO初始化结构体 SDIO命令初始化结构体 SDIO数据初始化结构体 STM32的SDIO功能框图及SDIO结构体 STM32的…

3d软件动物生活习性仿真互动教学有哪些优势

软体动物是一类广泛存在于海洋和淡水环境中的生物&#xff0c;其独特的形态和生活习性给学生带来了新奇和有趣的学习主题&#xff0c;为了方便相关专业学科日常授课教学&#xff0c;web3d开发公司深圳华锐视点基于真实的软体动物&#xff0c;制作软体动物3D虚拟展示系统&#x…

发点实用的快捷键(mac

切换输入法&#xff1a;ctrlspace /ctrloptionspace&#xff08;更快捷 切换网页&#xff1a; shifttab 切换应用界面&#xff1a;alttab 关闭页面&#xff1a;altw 搜索&#xff1a;altspace 展示mac隐藏文件&#xff1a; Commangshift . (点) 以下是一些浏览器快捷键&am…

【初阶C语言】认识和使用函数

1. 函数是什么 2. 库函数 3. 自定义函数 4. 函数参数 5. 函数调用 6. 函数的嵌套调用和链式访问 7. 函数的声明和定义 8. 函数递归 一、什么是函数 在数学中有函数&#xff0c;在C语言中也有函数&#xff0c;我们直接先给出一个定义&#xff1a; 在基维百科中函数被定义为子程…

MyBatisPlus入门到精通-1

MyBatisPlus(简称MP) 这篇博客主要讲解用MyBatisPlus进行三层架构中Dao层的开发 以这个为目的来进行我们的学习 我们会先通过一个概述和入门案例进行快速上手 之后我们再通过对我们原先的案列的问题进行分析 来进一步了解MP操作数据库的知识 快速入门 MP简介 MP是国人开发的…

HEVC并行处理技术介绍

h265 相比 h264 的复杂度 复杂度体现 ○ h265 帧内预测模式增多&#xff0c;h265 包含角度预测、DC 预测、平面模式等 35 种预测模式&#xff0c;远超 h264 的 17 种模式&#xff0c;帧内模式选择的复杂度大大增加&#xff1b; ○ h265 的区域划分方式更加多样化&#xff0c;提…

聊聊STM32串口通讯的话题

STM32 微控制器系列提供了多个串口模块&#xff0c;用于实现串口通讯。其中&#xff0c;STM32HAL 库中的 UART 驱动模块提供了一套方便易用的函数接口&#xff0c;可以用来配置和操作串口。 串口通讯是一种常见的数据传输方式&#xff0c;可以实现微控制器与外部设备或其他微控…

Jetbrains 2023.2教程

IDEA 2023.2 激活演示 Pycharm 2023.2 激活演示 WebStorm 2023.2 激活演示 Clion 2023.2 激活演示 DataGrip 2023.2 PhpStorm 2023.1.4 激活演示&#xff08;2023.2尚未发布&#xff09; RubyMine 2023.2 激活演示 获取方式 仔细看每一个工具演示的图片 本文由 mdnice …

深度探索 Elasticsearch 8.X:function_score 参数解读与实战案例分析

在 Elasticsearch 中&#xff0c;function_score 可以让我们在查询的同时对搜索结果进行自定义评分。 function_score 提供了一系列的参数和函数让我们可以根据需求灵活地进行设置。 近期有同学反馈&#xff0c;function_score 的相关参数不好理解&#xff0c;本文将深入探讨 f…

2023软件设计师中级备考经验分享(文中有资料链接分享)

先摊结论吧&#xff0c;软考中级设计师备考只是备考半个月&#xff08;期间还摆烂了几天&#xff09;&#xff0c;然而成绩如下&#xff1a; 我自己都没想到会这么好的成绩。。。 上午题&#xff1a;推荐把软考通APP里的历年真题刷3-4遍&#xff0c;直接刷真题&#xff0c;然后…

TimescaleDB多节点功能概述

如果您有更大的pb级工作负载&#xff0c;则可能需要多个TimescaleDB实例。TimescaleDB多节点允许您运行和管理数据库集群&#xff0c;这可以为您提供更快的数据摄取&#xff0c;以及对大型工作负载响应更快、更高效的查询。 多节点架构 多节点TimescaleDB允许您将多个数据库连…

【学习笔记】视频检测方法调研

目录 1 引言2 方法2.1 视频目标跟踪2.1.1 生成式模型方法2.1.2 判别式模型方法2.1.2.1 基于相关滤波跟踪2.1.2.2 基于深度学习跟踪 2.2 视频异常检测2.2.1 基于重构方法2.2.2 基于预测方法2.2.3 基于分类方法2.2.4 基于回归方法 2.3 深度伪造人脸视频检测2.3.1 基于RNN时空融合…

UG NX二次开发(C++)-利用UFun函数获取曲面上等参数的点

文章目录 1、前言2、叶片的三维模型3、利用UFun函数获取曲面的三种方法3.1 利用UF_Modl来实现3.2 利用UF_Point来实现3.2 利用UF_So来实现4、结果展示1、前言 在多轴加工过程中(尤其是薄壁零件),由于需要根据工件表面的几何信息以获取切触点,然后生成刀位轨迹,本文以叶片…

UEditor 百度富文本编辑器使用 遇到问题

小小吐槽 碰到前后不分离项目&#xff0c;富文本使用的UEdtior UEditor 点击上传图片转base64 在ueditor.all.js文件中找到这个 callback()函数 这里使用根据图片的url转成base64 UEditore 粘贴图片转base64 UEditor回显图片&#xff08;base64&#xff09; 把ueditor.all…

【Docker】制作Docker私有仓库

文章目录 1. 安装私有镜像仓库2. 镜像仓库可视化3. 参考资料 1. 安装私有镜像仓库 由于之后我们需要推送到私有镜像仓库&#xff0c;我们预先安装好&#xff0c;使用的是Docker公司开发的私有镜像仓库Registry。 下载Registry的Docker镜像&#xff1b; docker pull registry:2使…

【Django+Vue】英文成绩管理平台--20230727

项目需求 能够满足大部分核心需求&#xff08;标绿&#xff09;&#xff1a;报表部分应该比较难。 项目地址 前端编译 https://gitlab.com/m7840/toeic_vue_dist Vue源码 https://gitlab.com/m7840/toeic_vue Django源码 https://gitlab.com/m7840/toeic_python 项目…