检查数字是否存在于同一行或列矩阵中

标签 c

如果矩阵在同一行或列上不包含相同的数字,我想输出 Yay,否则输出 Nay

这是我的大学作业。我已经尝试检查同一循环中的列和行,但输出仍然不正确

#include <stdio.h>

int main()
{
    int size;
    int flag;
    scanf("%d",&size);
    char matrix[size][size];
    for (int i = 0; i < size; i++)
    {
        for (int l = 0; l < size; l++)
        {
            scanf("%s",&matrix[i]);
        }
    }
    for (int j = 0; j < size; j++){
        for (int k = 0; k < size; k++){
            if(matrix[j] == matrix[j+1] || matrix[j][k]==matrix[j][k+1])
            {
                flag = 1;
            }
            else
            {
                flag = 0;
            }
        }
    }
    if (flag == 1)
    {
        printf("Nay\n");
    }
    else 
    {
        printf("Yay\n");
    }
    return 0;
}

我希望在输入时输出“Nay”

3
1 2 3
1 2 3
2 1 3

当我输入时“Yay” 3 1 2 3 2 3 1 3 1 2

最佳答案

您的矩阵是一个二维数组,您仅在多个位置使用单个下标matrix[index]来引用它,该下标返回行的地址。使用行索引和列索引对其进行索引。尝试下面的代码:

{
    int size;
    int flag;
    scanf("%d",&size);
    char matrix[size][size];
    for (int i = 0; i < size; i++)
    {
        for (int l = 0; l < size; l++)
        {
            scanf("%s",&matrix[i][l]);
        }
    }
for(int j = 0; j < size; j++){
    for (int k = 0; j < size; j++){
            if(matrix[j][0]== matrix[j][k] || matrix[k][0]==matrix[k][j])
            {
                flag = 1;
                 break;
            }
            else
            {
                flag = 0;
            }
        }
    }
    if (flag == 1)
    {
        printf("Nay\n");
    }
    else 
    {
        printf("Yay\n");
    }
    return 0;
}

关于检查数字是否存在于同一行或列矩阵中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58515051/

相关文章:

c - 如何从 strrchr() 或 strchr() 中提取剩余的子字符串?

c - strcmp 如何用于二维数组?

c - 打印语句更改字符数组输出

c - 为什么下面的shell命令在命令行中直接执行时可以工作,但通过C程序使用popen/system执行时却不起作用?

c - 当条件相同时,while 循环的行为不同?

c - Unix 套接字 : Client stops receiving messages correctly after first message

c++ - open() 函数的 _sopen_s() 等价物是什么?

在 OpenGL ES 2.0 中将字节数组转换为图像

c - 如何使用 C 将 char 数组更改为 int ?

c - 这是使用 C 通过 UDP 发送二进制数据的正确方法吗?