使用较为原始的方法,通过直接创建数组后逐个输入数据,再对其进行遍历可以得到最终结果。内存占用较高,不太适合实际使用情况。
int main(void)
{
int N=0, M=0, K=0;
int i, j, num, a = 0;
scanf("%d %d %d", &N, &M, &K);
int matrix[N][M];
while((N >= 1)&&(M >= 1)&&(N <= 1000)&&(M <= 1000))
{
for(i = 0; i < N; i++)
{
for(j = 0; j < M; j++)
{
scanf("%d", &num);
char c = getchar();
matrix[i][j] = num;
if(c == '\n'){break;}
}
}
for(i=0; i<N; i++)
{
for(j=0; j<M; j++)
{
if(matrix[i][j] == K){++a;}
}
}
(a > 0)?(printf("Yes")):(printf("No"));
break;
}
return 0;
}
改进了一下遍历的,删减了重复的部分后的代码:
int main(void)
{
int N=0, M=0, K=0;
int i, j, num, a = 0;
scanf("%d %d %d", &N, &M, &K);
int matrix[N][M];
while((N >= 1)&&(M >= 1)&&(N <= 1000)&&(M <= 1000))
{
for(i = 0; i < N; i++)
{
for(j = 0; j < M; j++)
{
scanf("%d", &num);
char c = getchar();
matrix[i][j] = num;
if(matrix[i][j] == K){++a;}
if(c == '\n'){break;}
}
}
/*for(i=0; i<N; i++)
{
for(j=0; j<M; j++)
{
if(matrix[i][j] == K){++a;}
}
}*/
(a > 0)?(printf("Yes")):(printf("No"));
break;
}
return 0;
}
得到的结果如图所示:可以看到运行时间提升了但是内存释放了不少,