C 如何检查数组中的非零值(元素)

C 如何检查数组中的非零值(元素),c,arrays,C,Arrays,我想知道如何编写一个函数来返回是否至少有三个值不等于0。我寻找过类似的问题,但找不到任何有效的解决办法。为了解释我的问题,以下是一个示例: 我有一个包含以下元素的数组:[1,0,2,0,4,0,0,3,0,0]。我想检查是否至少有3个元素不等于零 如果至少有3个元素,我的代码将返回1!=0,如果元素少于3个,则返回0=0 因此,在我的示例中,它应该返回1计算不等于零的元素数。如果小于三,则返回false,否则返回true 为了获得计数,使用for循环遍历数组的内容,然后使用if语句测试元素是否为

我想知道如何编写一个函数来返回是否至少有三个值不等于0。我寻找过类似的问题,但找不到任何有效的解决办法。为了解释我的问题,以下是一个示例:

我有一个包含以下元素的数组:
[1,0,2,0,4,0,0,3,0,0]
。我想检查是否至少有3个元素不等于零

如果至少有3个元素,我的代码将返回
1
!=0,如果元素少于3个,则返回
0
=0


因此,在我的示例中,它应该返回
1

计算不等于零的元素数。如果小于三,则返回false,否则返回true

为了获得计数,使用for循环遍历数组的内容,然后使用if语句测试元素是否为零。

int non_zero(int a[],int lim){
int non_zero(int a[], int lim) {  
    int i, count;
    count = 0;
    for (i = 0; i < lim && count < 3; i++)
        if (a[i] != 0)
            count++;
    return count == 3 ? 1 : 0;
}
int i,计数; 计数=0; 对于(i=0;i
我想与大家分享我的解决方案

int check(){
    int arr[10]= [1,0,2,0,4,0,0,3,0,0];
    int total=0;
    for(int i=0;i<=10;i++){
        total+=arr[i];
     }
    return total;
}
int-check(){
int arr[10]=[1,0,2,0,4,0,0,3,0,0];
int-total=0;

对于(int i=0;i如果一个人处于优化状态,当计数达到3时,打破计数循环。这是一个未成熟的优化,所以?异端邪说!这只得到非零元素的总数,而不是非零元素的数目。此外,根据数组的大小和数组元素的大小,最终可能会出现溢出,使总数回到0,m它可能也不会告诉您任何元素是否为非零。