Home > Back-end >  Finding element in array C
Finding element in array C

Time:01-06

I have an array of 32 characters. 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? 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:

2 5 
10 5
29 3

CodePudding user response:

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

        }
}
  •  Tags:  
  • Related