C语言如何计算一维数组个数 在c语言中定义一个一维数组,然后任意输入一组数,怎样计算输入...

\u5728C\u8bed\u8a00\u7a0b\u5e8f\u4e2d\u5982\u4f55\u8ba1\u7b97\u4e00\u4e2a\u6570\u7ec4\u4e2d\u7684\u6bcf\u4e2a\u6574\u6570\u7684\u4e2a\u6570

#include
#define
MAX_NUM
1024
//\u5047\u8bbe\u6700\u5927\u7684\u4e00\u4e2a\u6574\u6570\u4e3a1024
int
main()
{
int
b[MAX_NUM];
//\u7edf\u8ba1\u6570\u7ec4
int
a[4098];//\u8f93\u5165\u6570\u7ec4
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
++;
}
//\u521d\u59cb\u5316\u7edf\u8ba1\u6570\u7ec4
for(i
=
0;i
{
b[i]
=
0;
}
//\u7edf\u8ba1\u90e8\u5206
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]);
}
}

\u5faa\u73af\u8f93\u5165\u7684\u65f6\u5019 \u6dfb\u52a0\u4e00\u4e2a\u8ba1\u6570\u5668

main里面第一行,a[10]就表示分配了10个元素的空间,所以a的size是10个int,故结果为10。
所以就第一行改为a[5]或者a[]就可以了。
估计你想要的是a[]这种,根据你列表里的元素个数,自动分配。

以上代码中sizeof(a)的结果是40,而sizeof(int)的结果是4,len就是10,即数组a所占int型的个数;
你可以进行循环判断,当a[i]至a[9]都为0时,有效数值的个数为i

方法一、最简单的一种获取数组元素个数的方法是通过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;
}

初值表的内容是在编译期就确定的,从代码中可知初值表元素个数为5个,直接写5即可。
在运行时没有任何方法可以得知初值表中有多少个元素。

我是用的VS2019编译的,这个sizeof运算符就直接计算出你inta[10]所预占的空间大小,试试strlen或者遍历计数吧

  • C璇█濡備綍璁$畻涓缁存暟缁勪釜鏁
    绛旓細main閲岄潰绗竴琛岋紝a[10]灏辫〃绀哄垎閰嶄簡10涓厓绱犵殑绌洪棿锛屾墍浠鐨剆ize鏄10涓猧nt锛屾晠缁撴灉涓10銆傛墍浠ュ氨绗竴琛屾敼涓篴[5]鎴栬卆[]灏卞彲浠ヤ簡銆備及璁′綘鎯宠鐨勬槸a[]杩欑锛屾牴鎹綘鍒楄〃閲岀殑鍏冪礌涓暟锛岃嚜鍔ㄥ垎閰嶃
  • C璇█濡備綍姹涓缁存暟缁鐨勪笉閲嶅鏁版嵁涓暟
    绛旓細涓嬮潰鏄C璇█姹涓缁存暟缁鐨勪笉閲嶅鏁版嵁涓暟鐨勫疄鐜颁唬鐮,渚涘弬鐓э細include <stdio.h>int main(){ int i,j,m,n; int num[100]; printf("璇疯緭鍏ユ暟缁勭殑闀垮害涓暟:\n"); scanf("%d",n); if(n>sizeof(num)) n=sizeof(num); printf("璇疯緭鍏%d涓暟鍊:\n"); for(i=0;...
  • c璇█涓庢牱琛ㄨ揪涓缁存暟缁涓湁鑻ュ共涓暟?
    绛旓細鐢╯izeof(array)鍘绘眰鍟婏紝濡傛灉鏁扮粍array[N]鏄瀹氫箟涓篿nt鍨嬬殑璇濓紝sizeof(array)/4灏辨槸鏁扮粍鐨勫父搴︼紝涔熷氨鏄綘瀹氫箟鏁扮粍鐨勪笅鏍囩殑澶у皬锛沜har涔熶竴鏍
  • C璇█,瀹氫箟涓涓10涓厓绱犵殑涓缁存暟缁,瑕佹眰閿洏杈撳叆,杈撳嚭鏁扮粍,缁熻鏁扮粍...
    绛旓細int main(){int i,n=0,a[10];printf("璇疯緭鍏10涓暣鏁帮細\n");for(i=0;i<10;i++){scanf("%d",&a[i]);if(a[i]>10)n++;} printf("杈撳叆鐨10涓暟鏄細\n");for(i=0;i<10;i++)printf("%d ",a[i]);printf("\n鍏朵腑澶т簬10鐨勬暟鏈%d涓猏n",n);return 0;} ...
  • C璇█缂栧啓閫掑綊鍑芥暟,缁熻涓缁存暟缁鍋舵暟鐨涓暟?
    绛旓細include<stdio.h> int odd(int a[],int n){if(n>0)return odd(a,n-1)+a[n-1]%2;return 0;} int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10};printf("%d\n",even(a,10));return 0;}
  • C璇█涓,杈撳叆10涓暟瀛樺叆涓涓涓缁存暟缁涓,缁熻鍏朵腑鐨勬鏁,璐熸暟涓庨浂鐨勪釜...
    绛旓細1銆侀鍏堟墦寮Dev-c++杞欢锛岀偣鍑烩滄柊寤烘簮浠g爜鈥濓紝濡備笅鍥炬墍绀恒2銆佺劧鍚庡湪鎵撳紑鐨勭獥鍙d腑锛岃緭鍏ヤ唬鐮侊紝濡備笅鍥炬墍绀恒3銆佺紪鍐欏畬绋嬪簭涔嬪悗锛岀偣鍑昏繍琛屽嵆鍙緱鍑虹粨鏋溿傛渶鍚庣殑缁撴灉鏄牴鎹嚜宸辫緭鍏ョ殑10涓暣鏁板间负鍩虹鏉ヨ繘琛岃繍琛岀殑锛屾瘡娆¤緭鍏ョ殑鏁扮粍鍊间笉鍚岋紝缁撴灉涔熶細涓嶅悓銆4銆佸叾涓細for琛ㄧず寰幆缁撴瀯锛宨 琛ㄧず寰幆鏉′欢锛屽湪...
  • C璇█涓缁存暟缁
    绛旓細main(){int i,x[10]={2,3,0,3,0,2,3,2,1,3},y[4]={0}; //鍊煎畾涔 x0-x9鐨勫2,3,0,3,0,2,3,2,1,3 y0-y3鐨勫煎潎涓0 for(i=0;i<10;i++) //寰幆浣撳紑濮 y[x[i]]++; //寰幆浣撳唴瀹 //鍥犱负娌℃湁澶ф嫭鍙凤紝鎵浠ュ惊鐜綋缁撴潫 printf("%d\n",y[3]);} 杩...
  • C璇█缂栫▼:灏嗕粠閿洏杈撳叆鐨20涓暣鏁板瓨鍏涓缁存暟缁涓,璁$畻鎵鏈夊厓绱犵殑鍜...
    绛旓細include <stdio.h>int main(void){int a[20];int i=0;for (;i<20;i++)scanf("%d",&a[i]);int result=0;for (i=0;i<20;i++)result+=a[i];printf("鍜屼负:%d\n骞冲潎鍊间负:%f\n",result,result/20.0);/*20.0涓嶈兘鏀逛负20*/result=a[0]for (i=1;i<20;i++){if (...
  • C璇█缂栫▼棰,鑻ュ嚱鏁板舰鍙備负涓缁存暟缁浣滃嚱鏁板弬鏁扮紪鍐欏嚱鏁,缁熻鏌愪竴缁存暟 ...
    绛旓細include <stdio.h> int func(int a[],int n){ int i,cnt;for(cnt=0,i=0;i<n;++i)if(a[i])cnt++;return cnt;} int main(){ int a[10]={0,1,2,3,4,5,6,7,8,9};printf("%d\n",func(a,10));return 0;}
  • 姹涓缁存暟缁涓0鐨涓暟(c璇█ 楂樻偓璧)
    绛旓細include<stdio.h> int countZero(int *a,int n){ int i,c=0;for(i=0;i<n;i++)if(a[i]==0) c++;return c;} int main(){ int a[10]={-5,-22,13,44,-25,66,0,88,-39,10};int num=countZero(a,10);printf("%d\n",num);return 0;} ...
  • 扩展阅读:c++必背入门代码 ... 一维和二维数组的区别 ... 数组第一维大小指什么 ... 一维数组的理解 ... 数学一维和二维的区别 ... 一维数组是什么样的 ... 一维数组求和怎么编程 ... 二维和一维的区别 ... c语言如何输出一维数组 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网