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

作者&投稿:坚友 (若有异议请与网页底部的电邮联系)
对于字符数组str[N],判断方法有以下三种:

第一种:用库函数strlen
len = strlen(str); // 数组长度
第二种:利用计数器
int i=0;
while(str[i++] != '\0'); // 数组str的长度为i
第三种:利用sizeof函数
len = sizeof(str)/sizeof(str[0]); // 数组长度对于其他类型的数组,都可以用字符数组的第三种方法,第三种方法是通用的。

对于字符数组str[N],判断方法有以下三种:

  • 第一种:用库函数strlen

len = strlen(str); // 数组长度
  • 第二种:利用计数器

int i=0;
while(str[i++] != '\0'); // 数组str的长度为i
  • 第三种:利用sizeof函数

len = sizeof(str)/sizeof(str[0]); // 数组长度

对于其他类型的数组,都可以用字符数组的第三种方法,第三种方法是通用的。



看是什么数组
如果是字符串 可以用strlen函数

如果是其他数组,可以尝试用sizeof判断他的大小,但是要除掉数据结构的大小
比如int *s;
s = 某个存在的数组
大小应该等于sizeof(s)/sizeof(int)

一般来说如果定义一个数组,最好还要同时定义一个int nLength来保存数组的大小,养成这样的习惯比较好

首先用static将数组都定义为0,在程序中用下面的程序:
#include N 1000
static int a[N]={0};
k=0;
for(i=0;i<N;i++)
if(a[i]!=0)
k++;

我觉得很多人都没有想到这样子来做,我把代码写出来给你看看
#include "conio.h"
#include "string.h"
main()
{
char str[10];
gets(str);
printf("字符的个数为:%d",sprintf("%s",str));
getch();
}

c语言如何判断一个数组中重复元素的个数,并输出这个个数的值?~

如下:
#include #include int main(){int n;int *a;int i;scanf("%d", &n);a = (int *)malloc(sizeof(int) * n);for(i = 0; i a[j+1]) { int tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp; } }}int tmp = a[0];int count = 1;for(i = 1; i 1) { printf("数组共有%d个数字%d
", count, a[i - 1]); } tmp = a[i]; count = 1; }}if(count > 1){ printf("数组共有%d个数字%d
", count, a[i - 1]);}free(a);return 0;}
我的思路是,先排序,再输出。

1、C语言中,定义数组后可以用sizeof命令获得数组的长度(即可容纳元素个数)。但是通过传递数组名参数到子函数中,以获得数组长度是不可行的,因为在子函数当中,数组名会退化为一个指针。2、例如:
int data[4],length;length=sizeof(data)/sizeof(data[0]); //数组占内存总空间除以单个元素占内存空间大小,即等于元素个数printf("length of data[4]=%d", length ); //输出length of data[4]=4

c语言如何判断一组数据中是否存在3个不重复的数字
答:如果数字都很小,就用数组下标作为数字,值作为出现次数。int a[100];for... if(++a[i] == 3) 有没有如果数字很大,就需要用哈希表,有点复杂懒得写。不介意时间复杂度的话用struct包裹一下数字和出现次数,用一维数组也可以。

C语言设计题:有15个数存放在一个数组中,输入一个数要求用折半查找法...
答:/ 你好:折半查找法找出该数是数组中的 第几个 元素的值 这个要找的值是数组元素排序之后的位置 还是排序之前的 因为折半查找要求数组是有顺序的 我调好了一个输出的是排序之后的 先让你看看结果,如果是你要的,我在给你代码 呵呵 /

用C语言编写程序:判别一个输入的整数数组中各元素的值,若大于0则输出...
答:思路:先定义一个数组a,for循环键盘输入,并判断其值是否小于0,如果是就重新赋值0,最后输出数组。参考代码:include <stdio.h>int main(){int i,a[5];for(i=0;i<5;i++){//键盘输入并判断 scanf("%d",&a[i]);if(a[i]<0) a[i]=0;}for(i=0;i<5;i++){printf("%d ",a[...

C语言找出一个数组中出现次数最多的那个元素
答: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;//先进行排序,按从小到大的...

...急需!输入一个一维整型数组,并找出数组元素中最大值和最小值及其相 ...
答:(4)如果现改为20个元素的数组,怎样修改程序?修改程序后,运行程序进行检查。如果需要数组元素不断改变,应怎样修改程序?2.编程实现:在给定的字符串中查找满足条件的第一个字符。要求:(1)字符串采用初始化的方式处理。(2)通过scanf函数读入一个任意字符。(3)在字符串中查找该字符,如果存在...

请用C语言:求一个数组中所有元素的和,在主函数中检验
答:main( ){ int nums[10]={100,200,300,400,500,600,700,800,900,1000},i,sum=0; char nums2str[10][5]={"100","200","300","400","500","600","700","800","900","1000"},str[41]; printf("数字型和字符串型的两个数组元素分别为:\n"); printf(...

关于c语言的一个简单题 判别一个整数数组中各元素的值,若大于0则输出...
答:ba[i]不能做实参,如果a做实参的话,传过去的是数组首地址,不是数组元素,所以还要传过去下表,另外打印(不是输出)v,0不需要%d的

...C++,编写一个函数,统计出具有n个元素的一维数组中大于等于所有元素平 ...
答:void main(void){ float a[100];int i,sum;for(i=0;scanf("%d",&a[i])==1;i++);/*可任意输入n(n<100)个数,用空格隔开,输入的数结束时输入一非法字符(如字母)则表示输入结束,按回车得出结果*/ sum=s(a,i); /*i表示数组元素个数*/ printf("%d\n",sum);} ...

c语言中怎么判断数组中每一个数是按从小打大排序?
答:判断:数组中的元素,若前一个元素数值 大于下一个元素数值,则 是 错误的排列;否则,就是正确的排列(即 下一个数大于等于 前一个数)。假定数组 有 n 个元素,数组元素数值 已知,程序如下:include <stdio.h> int main(){ int a[10]={1,2,3,4,5,6,7,8,9,-10};int i;int ...

...比较两个有序数组中的元素,输出两个数组中第一个相同的元素值_百度...
答:c语言指针2个数组查询比较代码如下:include <stdio>int main(){ int *lpa,*lpb; int a[100],b[100],alen,blen,i,j; printf("输入数组a长度:\n"); scanf("%d",&alen); printf("输入%d个有序数据给数组a\n",alen); for(i=0;i<alen;i++) scanf("%d",&a[i...