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

这篇具有很好参考价值的文章主要介绍了【C刷题】矩阵相等判断与序列中删除指定的数字。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

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];

【C刷题】矩阵相等判断与序列中删除指定的数字,C刷题笔记,c语言,开发语言,笔记

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

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

【C刷题】矩阵相等判断与序列中删除指定的数字,C刷题笔记,c语言,开发语言,笔记

BC105-矩阵相等判断

【C刷题】矩阵相等判断与序列中删除指定的数字,C刷题笔记,c语言,开发语言,笔记

题目的意思:

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

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

思路:

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

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

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

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

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

6.打印Yes or No。

【C刷题】矩阵相等判断与序列中删除指定的数字,C刷题笔记,c语言,开发语言,笔记

【C刷题】矩阵相等判断与序列中删除指定的数字,C刷题笔记,c语言,开发语言,笔记

#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;
 }

提交: 

【C刷题】矩阵相等判断与序列中删除指定的数字,C刷题笔记,c语言,开发语言,笔记

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

【C刷题】矩阵相等判断与序列中删除指定的数字,C刷题笔记,c语言,开发语言,笔记

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;
}

执行:

【C刷题】矩阵相等判断与序列中删除指定的数字,C刷题笔记,c语言,开发语言,笔记

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

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

思路:

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

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

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

【C刷题】矩阵相等判断与序列中删除指定的数字,C刷题笔记,c语言,开发语言,笔记

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;
}

【C刷题】矩阵相等判断与序列中删除指定的数字,C刷题笔记,c语言,开发语言,笔记 

方法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;
}

【C刷题】矩阵相等判断与序列中删除指定的数字,C刷题笔记,c语言,开发语言,笔记

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

动图演示的过程:

【C刷题】矩阵相等判断与序列中删除指定的数字,C刷题笔记,c语言,开发语言,笔记

#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;
}

【C刷题】矩阵相等判断与序列中删除指定的数字,C刷题笔记,c语言,开发语言,笔记

 本篇结束,若有错误,欢迎大家指正,感谢支持!文章来源地址https://www.toymoban.com/news/detail-611684.html

到了这里,关于【C刷题】矩阵相等判断与序列中删除指定的数字的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 代码随想录刷题第55天|Leetcode392判断子序列、Leetcode115不同的子序列

    1、Leetcode392判断子序列 题目链接:392判断子序列 本题与1143最长公共子序列 有一点不一样,最长公共子序列求 两个字符串 的最长公共子序列的长度,本题判断s是否为t的子序列。即t的长度是大于等于s的。 1、确定dp数组及下标含义 dp[i][j] 表示以下标i-1为结尾的字符串s,和以

    2024年02月16日
    浏览(47)
  • 代碼隨想錄算法訓練營|第五十六天|392.判断子序列、1035.不相交的线、115.不同的子序列。刷题心得(c++)

    目录 讀題 392.判断子序列 自己看到题目的第一想法 看完代码随想录之后的想法 115.不同的子序列 看完代码随想录之后的想法 392.判断子序列 - 實作 思路 原始思路 代碼隨想錄思路 Code 原始思路 代碼隨想錄思路 115.不同的子序列 - 實作 思路 Code 總結 自己实现过程中遇到哪些困

    2024年02月06日
    浏览(46)
  • 【==是判断相等吗?---错辣】C++和JAVA中判断字符串值相等的区别

    参考文章:这里;这里;这里 C++中的 string 类型可以使用 == 和 != 来判断两个字符串的值是否相等;而JAVA不行,JAVA中 == 和 != 是用来 判断两个字符串的地址是否相同 (或者说是 对象是否相同 ,即 是否为同一个对 象)。 运行结果 结果解释 :C++中可以利用 == 来判断两个字符

    2023年04月21日
    浏览(59)
  • 判断两个数组是否相等

    在判断两个数组是否相等之前,我们应该弄清楚数组怎样才算相等,官方给的解释是这样的: Returns true if the two specified arrays of ints are equal to one another. Two arrays are considered equal if both arrays contain the same number of elements, and all corresponding pairs of elements in the two arrays are equal. In other

    2024年02月15日
    浏览(62)
  • 判断两个vector数组是否相等

    判断两个vector数组是否相等是可以直接使用==或者!=的 因为vector内部都进行了相关运算符的重载,还可以进行比较大小 下面这道简单搜索题就用到了这个性质,浅看一下吧 【问题描述】给定一个n个整数的集合X={x1,x2,…xn}(X中可能包含重复元素)和整数y,找出和等于y的X的子集

    2024年02月12日
    浏览(65)
  • 【数字IC手撕代码】Verilog模三检测器(判断输入序列能否被三整除)|题目|原理|设计|仿真

    芯片设计验证社区·芯片爱好者聚集地·硬件相关讨论社区·数字verifier星球 四社区 联合力荐 !近500篇 数字IC精品文章收录 ! 【数字IC精品文章收录】学习路线·基础知识·总线·脚本语言·芯片求职·EDA工具·低功耗设计Verilog·STA·设计·验证·FPGA·架构·AMBA·书籍 本系列旨在提

    2024年02月16日
    浏览(41)
  • java 判断两个List是否包含 判断两个list相等

    java 判断两个List是否包含 判断两个list相等 https://blog.51cto.com/u_12855/7333853 1、直接使用equals()比较 众所周知,两个列表具有完全相同的元素并且具有完全相同的顺序时,它们是相等的。因此, 如果我们业务要求两个list顺序一致,可以使用equals()方法进行相等性检查: 即使

    2024年02月04日
    浏览(69)
  • Js如何判断两个数组是否相等?

    日常开发,时不时会遇到需要判定2个数组是否相等的情况,需要实现考虑的场景有: 先判断长度,长度不等必然不等 元素位置 其他情况考虑 \\\'1\\\' 和 1 (Object的key是字符串, Map的key没有限制) NaN null 和 undefined 数组自带的方法,比较适合的有: every、some、filter、findIndex 。 这种

    2024年02月22日
    浏览(69)
  • 记录--如何判断两个数组的内容是否相等

    给定两个数组,判断两数组内容是否相等。 不使用排序 不考虑元素位置 例: 思考几秒:有了😀😀 直接遍历第一个数组,并判断是否存在于在第二个数组中 求差集, 如果差集数组有长度,也说明两数组不等(个人感觉比上面的麻烦就不举例了) 细心的小伙伴就会发现:N

    2024年02月08日
    浏览(170)
  • Go语言如何判断两个对象是否相等

    在编程中,判断两个对象是否相等是一项常见的任务,同时判断对象是否相等在很多情况下都非常重要,例如: 单元测试 :编写单元测试时,经常需要验证函数的输出是否符合预期,这涉及到比较对象是否相等。 数据结构操作 :在使用 map 等数据结构时,可能需要判断两个对

    2024年02月07日
    浏览(153)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包