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

简介: 【C刷题】矩阵相等判断与序列中删除指定的数字(上)

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

C99标准之前:

数组的大小只能是常量来指定int arr[10]


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

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

int n = 10;

int arr[n];


需要注意变长数组的点:

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

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

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

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


147fbd7c67db43fba4d2d1111dd36085.jpg


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

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

0f7aa10116fc4d40ae17ce397d6a48ec.jpg


BC105-矩阵相等判断


9bfae561c9eb43d48acf28355dd3375b.png

题目的意思:

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


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


思路:

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

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

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

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

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

6.打印Yes or No。


4c6086f056274d1ba3129dc75cdd11a5.png

13b15050a2334419b3a286ecb5c6cacf.png

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

提交:

bbed0c1d1ef84ad49e937772a7f24dff.png

相关文章
【C刷题】矩阵相等判断与序列中删除指定的数字(下)
【C刷题】矩阵相等判断与序列中删除指定的数字(下)
|
7月前
|
存储 C语言
牛客网刷题总结(1.有序序列判断,2.获得月份天数,3.矩阵相等判定,4.矩阵转换,5.井字棋判断输赢,6.递归进行进制转化)
牛客网刷题总结(1.有序序列判断,2.获得月份天数,3.矩阵相等判定,4.矩阵转换,5.井字棋判断输赢,6.递归进行进制转化)
78 0
|
7月前
|
索引
Leetcode 给定一个数组,给定一个数字。返回数组中可以相加得到指定数字的两个索引
Leetcode 给定一个数组,给定一个数字。返回数组中可以相加得到指定数字的两个索引
|
7月前
|
算法 Java C++
数据结构与算法面试题:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。(提示:使用动态规划或者中心扩散)
数据结构与算法面试题:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。(提示:使用动态规划或者中心扩散)
88 0
​判断给定字符序列是否是回文
​判断给定字符序列是否是回文
83 0
序列中删除指定的数字(普通法、双指针法)
序列中删除指定的数字(普通法、双指针法)
【LeetCode】替换空格&&消失的数字&&分割链表&&除自身以外数组的乘积
【LeetCode】替换空格&&消失的数字&&分割链表&&除自身以外数组的乘积
【LeetCode】替换空格&&消失的数字&&分割链表&&除自身以外数组的乘积
|
机器人
力扣刷题记录——645. 错误的集合、657. 机器人能否返回原点、674. 最长连续递增序列
力扣刷题记录——645. 错误的集合、657. 机器人能否返回原点、674. 最长连续递增序列
132 0
力扣刷题记录——645. 错误的集合、657. 机器人能否返回原点、674. 最长连续递增序列
|
Java 测试技术
Java数字分类给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3
Java数字分类给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3
223 0
Java数字分类给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3
牛客网——序列中删除指定数字
牛客网——序列中删除指定数字
133 0
牛客网——序列中删除指定数字