新手求问,我这个用数组模拟差分时间链的程序到底哪里出错了?
搞了一下午了老是没法插在正确的位置,实在不知道到底哪里出错了,望各位大大不吝赐教啊
————————————————————————————————————————————————
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "iostream.h"
#include "malloc.h"
int main(int argc, char* argv[])
{
int t,t2,i,j,k,sum1=0,sum2=0,mix;
static int a[5]={8,7,9,3,6};
printf("input t\n");
scanf("%d",&t);
t2=t;
for(i=0;i<5;i++)
for(j=0;j<i;j++)
{
sum1=a[j]+sum1;
sum2=a[j+1]+sum2;
if(t>sum1&&t<sum2)
break;
}
for(k=0;k<i+1;k++) a[k]=a[k+2];
t=t-a[k];
t2=t2-a[k+1];
a[k]=t;
a[k+1]=t2;
for(i=0;i<7;i++)
printf("%d ",a[i]);
getchar();
}
[解决办法]
a[5]={8,7,9,3,6};
for(i=0;i<7;i++)
printf("%d ",a[i]);
越界了