C语言计算数组元素个数
A. C语言, 统计数组每个元素个数怎么做
我没有随机种子函数,这样效果明显。所产生的随机数的范围你可以改变。
#include<stdio.h>
#include<stdlib.h>
main()
{
int a[100],b[100],c[100]={0},i,j;
//a数组放随机数
//b数组放是否被统计的标志,1未统计,0已统计
//c数组放对应a数组中随机数出现的次数
for(i=0;i<100;i++)
{
a[i]=rand()%21;//产生0~20的随机数
b[i]=1;//未统计
printf("%5d",a[i]); //打印a数组的值
if((i+1)%10==0) //一行打印10个数
printf("\n");
}
printf("\n");
for(i=0;i<100;i++)
{
if(b[i]) //若a[i]未被统计
{
c[i]++; //次数加1
for(j=i+1;j<100;j++)//从下一个开始向后查找
if(a[j]==a[i]) //若相等
{
c[i]++; //则次数增1
b[j]=0; //改为已统计
}
}
}
for(i=0,j=1;i<100;i++)
{
if(c[i]) //若某随机数出现了,则打印其值和出现次数
printf("%3d:%5d 出现 %3d次\n",j++,a[i],c[i]);
}
}
B. 在C语言程序中如何计算一个数组中的每个整数的个数
#include
#define
MAX_NUM
1024
//假设最大的一个整数为1024
int
main()
{
int
b[MAX_NUM];
//统计数组
int
a[4098];//输入数组
int
i;
int
count
=
0;
for(i=0;i<4098;i++)
{
printf("please
input
a[%d],input
-1
to
stop:",i);
scanf("%d",&a[i]);
if(a[i]
==
-1)
{
break;
}
count
++;
}
//初始化统计数组
for(i
=
0;i
{
b[i]
=
0;
}
//统计部分
for(i
=
0;i
{
b[a[i]]++;
}
for(i
=
0;i
<
MAX_NUM
&&
i
<
count;i++)
{
printf("the
number
of
%d
is:%d\n",i,b[i]);
}
}
C. C语言如何检查一个数组中元素的个数
对于字符数组str[N],判断方法有以下三种:
第一种:用库函数strlen
len = strlen(str); // 数组长度
第二种:利用计数器
int i=0;
while(str[i++] != '\0'); // 数组str的长度为i
第三种:利用sizeof函数
len = sizeof(str)/sizeof(str[0]); // 数组长度对于其他类型的数组,都可以用字符数组的第三种方法,第三种方法是通用的。
D. C语言 怎样求数组中元素个数(长度)
如果这样定义,每一行还是20个数,后面的自动补为0了,所以根据这个数组不能求得每一行的元素个数。
楼主可以在这个数组每一行再添加一个特殊的数字作为标志位。
E. C语言获取函数参数的数组的元素个数
C语言中,定义数组后可以用sizeof命令获得数组的长度(可容纳元素个数),通过数组占内存总空间/单个元素占内存空间大小,即可得到数组的元素个数
例如
但是,通过将数组作为函数参数传递到函数中,以获得数组长度是不可行的
例如
原因:数组arr是函数参数,在函数中,arr只是一个指针(地址,系统在本函数运行时,是不知道arr所表示的地址有多大的数据存储空间,这里只是告诉函数:一个数据存储空间首地址),所以,sizoef(arr)的结果是指针变量arr占内存的大小,一般在32位机上是4个字节。arr[0]是int类型,sizeof(arr[0])也是4个字节,所以,结果永远是1。
如果想要在被调用的函数中,得知原数组的大小,可以再给函数添加一个参数,用于指定数组的大小,让外界调用函数前就讲数组的大小传递进来
F. C语言中如何求数组真实存有数据的元素个数
这个是比较容易解决的,这是我把楼主的程序略加修改后的代码:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain()
{
inta[100];
intn;
inti;
intlen=0; //此行给len初始化;
scanf("%d",&n);
for(i=0;i<n;i++)
{
a[i]=i;
++len; /*此处算是这个程序里面求数组a实际长度的要点了,
每循环一次,len的值就加1(从初始值0开始加的),所以当循环n次后,len就记下了数组的长度!*/
}
//len=(sizeof(a)/sizeof(a[0]));因为只是为了让len表示数组a的值,所以为了求len不必采用这样的方法;
printf("%d ",len);//加个换行符输出时看的明显些;
}
这是我自己运行的结果,楼主可以自己运行着看看,这样输出的结果就是数组a的实际长度了:
楼主还有什么疑问可以尽情问,还有,以后若是想求一个数组的实际长度,且这个数组是字符数组时,楼主只需要在头文件中包含#include<string.h>后,就可以在求字符数组的实际长度时;用语句 int len;//用于存储字符的实际长度;
len=strlen(a),其中a是要求的字符数组的名称,不必加下标;很方便的,希望能帮到楼主哦。
G. 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=0;j<MAX;j++)
{
if(a[j]!=0||j==0)
{
m=j;
printf("%d\n",m);
}
else
break;
}
return 0;
}
H. C语言如何计算一维数组个数
以上代码中sizeof(a)的结果是40,而sizeof(int)的结果是4,len就是10,即数组a所占int型的个数;
你可以进行循环判断,当a[i]至a[9]都为0时,有效数值的个数为i
I. 请问在C语言中如何获取一个数组里存在多少个元素
有一个函数就是为了获取数组元素个数的:sizeof!
原理是:sizeof获取数组的长度然后除以数据类型所占的长度得到元素个数
我简单写下代码:
int a[100]={1,2,3,4}; int len=sizeof(a)/sizeof(int); printf("%d\n",len);
以上为原来的回答,有错误:
在给定数组大小时候sizeof这个方法就不起作用了,我当时没注意犯了错误有些误人子弟了
原谅我一年以后才来修改这个答案~
我想了想int数组默认全是0称为初始化,姑且说非0为有效元素
while(i<100)
{
if(a[i]!=0)
count++;
i++;
}
遍历,记录
字符数组有结束符,只要找到结束符的位置就可以了