3

0に等しくない値が少なくとも3つあるかどうかを返す関数を作成する方法を考えています。同様の問題を検索しましたが、効果的な解決策が見つかりませんでした。私の問題を説明するために、ここに例があります:

これらの要素を含む配列があります: [1,0,2,0,4,0,0,3,0,0]。ゼロに等しくない要素が少なくとも3つあるかどうかを確認したいと思います。

私のコード1は、少なくとも3つの要素がある場合に返され、3つ未満の要素がある場合に!= 0返されます。0!=0

したがって、私の例では、を返す必要があり1ます。

4

3 に答える 3

4

ゼロに等しくない要素の数を数えます。3未満の場合はfalseを返し、そうでない場合はtrueを返します。

カウントを取得するには、forループを使用して配列の内容をループし、ifステートメントを使用して要素がゼロかどうかをテストします。

于 2012-06-10T20:15:08.043 に答える
1
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;
}
于 2012-06-11T05:28:40.367 に答える
-1

ソリューションを共有したい

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;
}

私の問題を解決しようとしてくれてありがとう<3

于 2012-06-12T22:23:39.053 に答える