C语言如何计算一维数组个数
发布网友
发布时间:2022-04-29 09:59
我来回答
共5个回答
热心网友
时间:2022-06-25 20:53
main里面第一行,a[10]就表示分配了10个元素的空间,所以a的size是10个int,故结果为10。
所以就第一行改为a[5]或者a[]就可以了。
估计你想要的是a[]这种,根据你列表里的元素个数,自动分配。
热心网友
时间:2022-06-25 20:53
以上代码中sizeof(a)的结果是40,而sizeof(int)的结果是4,len就是10,即数组a所占int型的个数;
你可以进行循环判断,当a[i]至a[9]都为0时,有效数值的个数为i
热心网友
时间:2022-06-25 20:54
方法一、最简单的一种获取数组元素个数的方法是通过while循环到'\0'字符之前的元素。
int main()
{
int a[] = { 1,2,3,4,5 };
下面是利用while循环获取数组中除了‘\0'的元素个数
int i = 0;
while (a[i] != '\0') {
//printf("%d\n", a[i]);
i++;
}
printf("%d\n", i);//返回数字5
return 0;
}
方法二、
int main()
{
int a[] = { 1,2,3,4,5 };
int len = sizeof(a) / sizeof(a[0]);//获取数组的定义长度
printf("%d\n", len);//返回数字5
return 0;
}追问第一种如果 a[10]={0,1,2,3,4,5,0}就会错误,
第二种
#include
int main(void)
{
int a[];
int i=0;
scanf("%d",&i);
for(int j=0;j<i;j++)
a[j]=j;
printf("%d",i);
return 0;
}如何循环赋值啊 ,我也不知道赋值多少个, i不确定;
追答首先声明一个变量i=0,使用while (a[i] != '\0'),不用事先知道数组的长度,每定义一个数组都是以‘\0'结尾,只要到\0循环就自动结束。
热心网友
时间:2022-06-25 20:54
初值表的内容是在编译期就确定的,从代码中可知初值表元素个数为5个,直接写5即可。
在运行时没有任何方法可以得知初值表中有多少个元素。
热心网友
时间:2022-06-25 20:55
我是用的VS2019编译的,这个sizeof运算符就直接计算出你inta[10]所预占的空间大小,试试strlen或者遍历计数吧