简体   繁体   English

在数组 C 中查找元素

[英]Finding element in array C

I have an array of 32 characters.我有一个 32 个字符的数组。 I want to find the 2 numbers in my array as in the output, it will write the index of the first 2 found and then add up how many 2s there are until it finds 1. how can I do this?我想在我的数组中找到 2 个数字,如 output,它将写入找到的前 2 个的索引,然后将有多少个 2 相加,直到找到 1。我该怎么做? For example:例如:

i: 0 val: 1
i: 1 val: 1
i: 2 val: 2
i: 3 val: 2
i: 4 val: 2
i: 5 val: 2
i: 6 val: 2
i: 7 val: 1
i: 8 val: 1
i: 9 val: 1
i: 10 val: 2
i: 11 val: 2
i: 12 val: 2
i: 13 val: 2
i: 14 val: 2
i: 15 val: 1
i: 16 val: 1
i: 17 val: 1
i: 18 val: 1
i: 19 val: 1
i: 20 val: 1
i: 21 val: 1
i: 22 val: 1
i: 23 val: 1
i: 24 val: 1
i: 25 val: 1
i: 26 val: 1
i: 27 val: 1
i: 28 val: 1
i: 29 val: 2
i: 30 val: 2
i: 31 val: 2

The output I want is:我想要的 output 是:

2 5 
10 5
29 3
#include <stdio.h>
#include <stdlib.h>

int
main(int argc,char* argv[])
{
        char a[] = {
                1, 1, 2, 2, 2, 2, 2, 1,
                1, 1, 2, 2, 2, 2, 2, 1,
                1, 1, 1, 1, 1, 1, 1, 1,
                1, 1, 1, 1, 1, 2, 2, 2
        };
        int count = 0;
        for( unsigned i = 0; i < sizeof a / sizeof *a + 1; i++ ){
                if( i < sizeof a / sizeof *a && a[i] == 2 ){
                        if( count++ == 0 ){
                                printf("%d", i);
                        }
                } else {
                        if( count ){
                                printf(" %d\n", count);
                        }
                        count = 0;
                }

        }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM