如果矩阵在同一行或列上不包含相同的数字,我想输出 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/