#include <stdio.h>
int main() {
int buf[48] = {1,1,1,1,1,1,1,1,1,1, 2,2,2,2,1,1,1,1,1,1, 3,3,3,3,3,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 4,4,4,4,4,1,1,1};
int a1[48]={0},a2[48]={0}; //a1存buf里数据变化情况 a2存每段有多少个
int j1 = 0;
for (int i = 0; i < 47; i++)
{
if(buf[i]!=buf[i+1])
{
a1[j1] = i+1;
j1++;
}
}
for(int i=0;i<j1+1;i++)
{
if(i==0)
{
a2[0] = a1[0] - 0;
}
else if(i==j1)
{
a2[j1] = 48-a1[j1-1];
}
else
{
a2[i] = a1[i] -a1[i-1];
}
}
for(int i=0;i<j1+1;i++)
{
printf("%d ",a2[i]);
}
return 0;
}
求数组不同元素每段个数
最新推荐文章于 2023-08-13 16:26:34 发布