[英]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.