C语言,求数组中元素的个数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言,求数组中元素的个数相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
#define MAX 5000
int main()

int i,n,j=0,m,k;
int a[MAX];
for(i=0;i<10;i++)

a[i]=i;//对十个数组依次赋值

for(;j<MAX;j++)

if(a[j]==NULL)//如果数组为空则返回当前数组的下标,即为数组元素的个数
//或者这样写a[j]=='\0'
m=j;
printf("%d\n",m);
break;


return 0;

可是最后输出的值是0,还请大神求解!

你的数组a[0]在赋值过程中就是0啊
即a[0]=0;
for(;j<MAX;j++)

if(a[j]==NULL)//如果数组为空则返回当前数组的下标,即为数组元素的个数
//或者这样写a[j]=='\0'
m=j;
printf("%d\n",m);
break;


所以上面程序j=0时,a[0] == NULL是TRUE,所以打印出m为0啊

所以你可以将赋值语句改一下即可
for(i=1;i<=10;i++)

a[i]=i;//对十个数组依次赋值
参考技术A 因为循环中为空就输出并退出,因改为
#include <stdio.h>
#define MAX 5000
int main()

int i,n,j=0,m,k;
int a[MAX];
for(i=0;i<10;i++)

a[i]=i;

for(j=0;j<MAX;j++)

if(a[j]!=0||j==0)

m=j;
printf("%d\n",m);


else
break;

return 0;
参考技术B if(a[j]==NULL),不能这么判断,这是判断数组元素的最后一个,并不是你输入数据的最后一个,你要么给数组a一个结束标志,根据结束标志才能判断。楼上的都说错了吧

以上是关于C语言,求数组中元素的个数的主要内容,如果未能解决你的问题,请参考以下文章

C语言__数组中的查找某一元素,并显示其下标号!急!求高手!

算法求两个数组中相同的元素及其个数(C语言Java实现)

c语言数组长度函数

C语言如何检查一个数组中元素的个数

C语言程序设计:求二维数组中最大元素值及其行列号

C语言中二维数组里统计不同元素出现的个数