请问在C语言中如何获取一个数组里存在多少个元素? 请问在C语言里如何将一个数组元素的个数设为输入的值?

C\u8bed\u8a00\u5982\u4f55\u68c0\u67e5\u4e00\u4e2a\u6570\u7ec4\u4e2d\u5143\u7d20\u7684\u4e2a\u6570

\u5bf9\u4e8e\u5b57\u7b26\u6570\u7ec4str[N]\uff0c\u5224\u65ad\u65b9\u6cd5\u6709\u4ee5\u4e0b\u4e09\u79cd\uff1a

\u7b2c\u4e00\u79cd\uff1a\u7528\u5e93\u51fd\u6570strlen
len = strlen(str); // \u6570\u7ec4\u957f\u5ea6
\u7b2c\u4e8c\u79cd\uff1a\u5229\u7528\u8ba1\u6570\u5668
int i=0;
while(str[i++] != '\0'); // \u6570\u7ec4str\u7684\u957f\u5ea6\u4e3ai
\u7b2c\u4e09\u79cd\uff1a\u5229\u7528sizeof\u51fd\u6570
len = sizeof(str)/sizeof(str[0]); // \u6570\u7ec4\u957f\u5ea6\u5bf9\u4e8e\u5176\u4ed6\u7c7b\u578b\u7684\u6570\u7ec4\uff0c\u90fd\u53ef\u4ee5\u7528\u5b57\u7b26\u6570\u7ec4\u7684\u7b2c\u4e09\u79cd\u65b9\u6cd5\uff0c\u7b2c\u4e09\u79cd\u65b9\u6cd5\u662f\u901a\u7528\u7684\u3002

C/C++ \u8bed\u8a00\u91cc, \u58f0\u660e \u6570\u7ec4\u5927\u5c0f\u65f6\uff0c\u53ea\u5141\u8bb8\u7528\u5e38\u6570\uff0c\u4f8b\u5982\uff1a
int a[10];
int b[5*4*3];
\u4e0d\u5141\u8bb8\u7528 \u53d8\u91cf\u3002

\u5982\u4f55\u5c06\u4e00\u4e2a\u6570\u7ec4\u5143\u7d20\u7684\u4e2a\u6570\u8bbe\u4e3a\u8f93\u5165\u7684\u503c\u5462\uff0c\u4e00\u822c\u7528\u52a8\u6001\u5206\u914d\u3002
int *a; // \u58f0\u660e\u4e3a\u6307\u9488\u3002
\u77e5\u9053\u5927\u5c0fn\u540e, \u7528\u52a8\u6001\u5206\u914d\uff1a
a = (int *) malloc(sizeof(int) * n);
\u63a5\u4e0b\u6765\u5c31\u53ef\u4ee5 \u628a a \u770b\u6210 \u4f60 \u58f0\u660e\u8fc7 int a[n]; \u4e86\u3002

\u5bf9\u521d\u5b66\u8005\u6765\u8bf4\uff0c\u4f60\u5f00\u4e2a\u5927\u6570\u7ec4\uff0c\u591a\u7ed9\u4e9b\u5355\u5143\uff0c\u5c31\u53ef\u4ee5\u4e86\u3002
\u4f8b\u5982\uff0c\u4f60\u4f30\u8ba1 \u4f60\u7684 n = 10 \u5230 1000 \u8303\u56f4\uff0c\u4f60\u58f0\u660e int a[2000]; \u5c31\u600e\u4e48\u4e5f\u591f\u7528\u4e86\u3002
\u73b0\u4ee3\u8ba1\u7b97\u673a\u7528\u865a\u62df\u5b58\u50a8\uff0c1000\uff0c2000 \u4e2a\u5355\u5143\uff0c\u5c0f\u610f\u601d\u4e86\u3002

有一个函数就是为了获取数组元素个数的: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++;
}
遍历,记录
字符数组有结束符,只要找到结束符的位置就可以了

  • 鐢C璇█鍐欎簡涓涓杈撳叆涓涓竴缁鏁扮粍鐨鍑芥暟,濡備綍鍦ㄥ悗鏉ュ啓鐨勫嚱鏁颁腑璋冪敤璇...
    绛旓細鍦–璇█涓锛屾棤娉曠洿鎺ヨ繑鍥涓涓暟缁锛屼絾鏄彲浠ラ氳繃杩斿洖瀵瑰簲绫诲瀷鎸囬拡鐨勬柟寮忥紝杩斿洖鏁扮粍銆傚湪澶у鏁版儏鍐典笅锛屼竴缁存暟缁勫拰涓缁存寚閽堟槸鍙互閫氱敤鐨勩傛瘮濡傦紝瀹氫箟涓涓嚱鏁帮紝鐢宠涓瀹氶暱搴︾殑鏁村瀷鍔ㄦ佹暟缁勶紝鍏堕暱搴︾敤鍙傛暟浼犲叆锛屽苟灏嗙粨鏋滆繑鍥炪傚鍑洪敊锛岃繑鍥炵┖鎸囬拡NULL銆備唬鐮佸彲浠ュ啓鎴愬涓嬪舰寮忥細int*int_array_create(int n)//...
  • 璇烽棶鎬庝箞鐢C璇█缁熻涓涓暟缁涓笉鍚屽厓绱犲畠浠噸澶鐨涓暟鍟?
    绛旓細//娴嬭瘯鏁版嵁:鎬诲叡鏄9涓笉鍚岀殑鍏冪礌,鎸夌収鍗囧簭鎺掑ソ,鍏朵腑鏈夐噸澶嶅嚭鐜扮殑鍏冪礌銆 int[]array=newint[]{1,1,2,2,2,3,4,5,5,6,7,7,8,9}; System.out.println(newTest().count(array)); } } 鎵╁睍璧勬枡: C绋嬪簭涓嚱鏁扮壒鎬 C绋嬪簭涓嚱鏁扮殑鏁扮洰瀹為檯涓婃槸涓嶉檺鐨,涓涓狢绋嬪簭涓蹇呴』鑷冲皯鏈変竴涓鍑芥暟,鑰屼笖...
  • C++ 濡備綍鑾峰緱涓涓暟缁涓 鏈夊灏戜釜鏁
    绛旓細=== 鎺у埗鍙拌緭鍏 2 5 6 7鍥炶溅 杈撳嚭缁撴灉4(杈撳叆浜4涓暟) 锛岀敤涓嬫硶锛歩nclude <stdio.h> int main(){ int x[]={1,2,3,4,5,6,7,8,9,10};int i, n,c;n = sizeof(x) / sizeof(int);printf("There are %d elem in the array\n",n);printf("\nintput data\n");n=0;whi...
  • C璇█鎵惧嚭涓涓暟缁涓嚭鐜版鏁版渶澶鐨閭d釜鍏冪礌
    绛旓細include<stdio.h> int main(){ int n,i,j,k,t,m,a[25];while(scanf("%d",&n)!=EOF){ for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n-1;i++){ for(j=i+1;j<n;j++){ if(a[i]>a[j]){ t=a[i];a[i]=a[j];a[j]=t;//鍏堣繘琛屾帓搴忥紝鎸変粠灏忓埌澶х殑...
  • 鍗曠墖鏈C璇█涓浣鍋氫竴涓嚱鏁板垽鏂涓涓暟缁鐨勫ぇ灏?
    绛旓細鍙互鍦ㄥ嚱鏁颁腑鍊熺敤sizeof杩愮畻绗︼紝鏉鑾峰彇鏁扮粍澶у皬銆1 鑾峰彇鏁扮粍a鏁翠綋鍗犵敤绌洪棿鍙互浣跨敤 sizeof(a)璇ュ间负杩欎釜鏁扮粍鍗犵敤鐨勬诲唴瀛樺硷紝鍗曚綅涓哄瓧鑺傘2 鑾峰彇鏁扮粍鍏冪礌涓暟鍙互鐢 sizeof(a)/sizeof(a[0])璇ュ间负鏁扮粍寮杈熺殑鍏冪礌涓暟銆
  • 濡備綍鍦–璇█涓浣跨敤浜岀淮鏁扮粍?
    绛旓細濡備綍鍦ㄤ竴缁村瓨鍌ㄥ櫒涓瓨鏀句簩缁鏁扮粍锛屽彲鏈変袱绉嶆柟寮忥細涓绉嶆槸鎸夎鎺掑垪锛 鍗虫斁瀹屼竴琛屼箣鍚庨『娆℃斁鍏ョ浜岃銆傚彟涓绉嶆槸鎸夊垪鎺掑垪锛 鍗虫斁瀹屼竴鍒椾箣鍚庡啀椤烘鏀惧叆绗簩鍒椼鍦–璇█涓锛屼簩缁存暟缁勬槸鎸夎鎺掑垪鐨勩傚嵆锛屽厛瀛樻斁a[0]琛岋紝鍐嶅瓨鏀綼[1]琛岋紝鏈鍚庡瓨鏀綼[2]琛屻傛瘡琛屼腑鏈夊洓涓厓绱犱篃鏄緷娆″瓨鏀俱傜敱浜庢暟缁刟璇存槑涓...
  • c璇█浣跨敤fgets浠庨敭鐩鑾峰彇涓涓瀛楃涓,淇濆瓨鍦ㄦ煇瀛楃鏁扮粍涓
    绛旓細include <stdio.h>void main(){ char str[100]; fgets(str,sizeof(str),stdin); printf("str=%s\n",str );}
  • 鍦–璇█涓,杈撳叆涓涓鏁,鏌ユ壘瀹冨湪鏁扮粍涓鐨勪綅缃
    绛旓細int main(void){ int aiNum[10] = {1,23,34,22,33,44,55,31,24,90};int i;int number;printf("input NUMBER");scanf("%d",&number);for(i=0;i<10;i++){ if(number == a[i])break;} if(i>9){ printf("NOT FOUND NUMBER\n");} else { printf("LOCATION:[%d]\n",...
  • 鍦╟璇█濡備綍鑾峰彇涓涓鍚勪綅閮戒笉鐩稿悓鐨闅忔満鏁?
    绛旓細澶ц嚧绠楁硶濡備笅:瀹氫箟涓涓暟缁閮藉垵濮嬪寲涓0鐢ㄦ潵鍌ㄥ瓨1~6鐨勪娇鐢ㄧ殑娆℃暟,濡俢alc[7](a[0]涓嶇敤)calc[1]~calc[6]鍒嗗埆鍌ㄥ瓨1~6鐨勪娇鐢ㄧ殑娆℃暟 姣忓綋浜х敓涓涓殢鏈烘暟鏀惧叆temp,鑻alc[temp]>2鍒欓噸鏂颁骇鐢熺洿鍒癱alc[temp]<=2鎵嶆妸pNumber=temp 鐒跺悗calc[temp]++ 鍏蜂綋绋嬪簭鐢变簬鎴戜笉浼歂SMutableArray鎴戞妸瀹冩斁鍦╪um鏁扮粍...
  • 鐢c璇█绋嬪簭缂栧啓 鎵惧嚭涓涓浜岀淮鏁扮粍涓殑闉嶇偣,鍗宠浣嶇疆涓婄殑鍏冪礌鍦ㄨ琛屼笂...
    绛旓細j=0;j<m;j++)if(a[i][j]>max){ max=a[i][j];maxj=j;} for(k=0,flag1=1;k<n&&flag1;k++)if(max
  • 扩展阅读:扫一扫题目出答案 ... c语言编程自学 ... c语言输出平方 ... c语言100-999水仙花数 ... 水仙花编程题c语言 ... 简单计算器c语言 ... c语言中怎么求立方 ... c语言数字平方 ... c语言中平方怎么输入 ...

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