【问题标题】:How to compare first and second rows of an array using C如何使用C比较数组的第一行和第二行
【发布时间】:2020-10-14 01:45:30
【问题描述】:

我有一个二维数组 mat[5][10],我试图找出第一行是否包含与第二行相同的元素(使用 C)。但我不知道如何在 C 中做到这一点。这是我的代码,但它不工作

char mat[5][10] = { "Java", "Python", "C++", "HTML", "SQL" };

if(mat[0][10] == mat[1][10])
{
    printf("YESSS");
}
else
{
    printf("NOOO");
}

【问题讨论】:

  • 您必须比较子数组的各个元素。或者因为它们都是字符串,所以使用strcmp
  • 你认为你的例子中的mat[0][10]是什么?
  • 我将 mat[0][10] 作为第一行,mat[1][10] 作为第二行
  • 你对“行”的理解是什么。请根据示例说明您认为“第一行”和“第二行”应该对应的内容。
  • mat[0] 是第一行。 mat[0][0] 是第一行的第一个字符。 mat[0][10] 无效,因为第二个索引必须是 0 到 9 之间的数字。

标签: c arrays string multidimensional-array compare


【解决方案1】:

据我所知,您希望将 char 数组的第一个元素与其他元素进行比较。我为此写了一个合适的代码。你可以检查一下。

#include <stdio.h>
#include <string.h>
#define  length(x) (sizeof(x) / sizeof(x[0]))
int main() {
    
    char mat[5][10] = {"Java", "Python", "Java", "HTML", "SQL"};
    
    int i;
    for(i = 1; i < length(mat); ++i) {
        if(!strcmp(mat[0], mat[i])) {
            printf("Yes");
            break;
        }
    }
    if(i == length(mat)) {
        printf("No");
    }
}

【讨论】:

    猜你喜欢
    • 2014-12-24
    • 2021-03-23
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2020-08-20
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    相关资源
    最近更新 更多