我在大学里创建了一个在DevC ++中运行良好的程序,但回到家后,它在Code :: Blocks中不起作用,我也不知道出了什么问题。我想计算2D整数数组(全为0)的行数和列数,然后发现即使使用1D数组,我使用的方法也不正确。你能告诉我怎么了吗?
#include <stdio.h>
#include <stdlib.h>
#define L 5
#define C 2
#define N 10
int main()
{
int T[L][C],M[N],i=0,j=0,k=0;
for(i=0;i<L;i++) for(j=0;j<C;j++) T[i][j]=0;
for(k=0;k<N;k++) M[k]=0;
i=0;
j=0;
k=0;
while(T[i][0]==0) i++;
while(T[0][j]==0) j++;
while(M[k]==0) k++;
printf("The number of lines is: %d.\nThe number of columns is: %d.\n",i,j);
printf("The number of lines is: %d.\nThe number of columns is: %d.\n",L,C);
printf("The number of lines is: %d.\n",k);
printf("The number of lines is: %d",N);
getch();
return 0;
}
您的条件是错误的。
while(T[i][0]==0) i++;
while(T[0][j]==0) j++;
while(M[k]==0) k++;
即使分配了内存,也有可能存在0。在较旧的版本中,没有索引范围检查或超出范围的异常,即使达到指定的长度,它也可以继续运行。因此,您发现数组长度的方法是错误的。此外,如果没有为数组动态分配内存,并且您知道您的数组将具有固定长度,那么为什么还要检查它的大小。从我的角度来看,您要数不行。数组中的某些值,那么对于它,存在许多用于搜索的算法。应用其中之一:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句