有一个简单而有麻烦的算法:
#include<stdio.h>
#include <stdio.h>
int main()
{
int a[10]={0,0,8,0,0,2,0,6,0,12},len=10,i,j;
int s=0,e=0,c=0;
int s1=0,e1,t1,t2;
for(i=0;i<len;i++)
{
if(a[i]!=0)
{
if(s!=0)
e=i;
else
{
s=i;
if(s1==0)
{
t1=a[i];
s1=s;
}
}
}
printf("%d--%d\n",s,e);
if(s!=0 && e!=0)
{
c=(a[s]+a[e])/2;
for(j=s+1;j<e;j++)
{
a[j]=c;
}
s=e;
e=0;
}
}
e1=s;
t2=a[s];
for(i=0;i<s1;i++)
a[i]=t1;
for(j=e1+1;j<10;j++)
a[j]=t2;
for(i=0;i<len;i++)
printf("%d\t",a[i]);
printf("\n");
}