主题:等值数列段
输入:8
1 1 1 0 1 1 1 1(8项,后边数列的8个元素)
(等值部分 前3个1,后4各1)
输出:
A中长度最大的所有等值数列段的始末位置,如果没有等值数列段,则输出No equal number list.
例:6↵
1 0 1 1 1 0↵
The longest equal number list is from 2 to 4.↵
这是我的程序。
#define N 4
#define M 126
#include<stdio.h>
#include<stdlib.h>
main()
{
int t,k,a[N],b[M];
int i=0,x0,x1,x2,x3;
for(k=0;k<=3;k++)
scanf("%d",&a[k]);
for(x3=0;x3<=5;x3++)
for(x2=0;x2<=5-x3;x2++)
for(x1=0;x1<=5-x3-x2;x1++)
for(x0=0;x0<=5-x3-x2-x1;x0++)
{
b[i]=x0*a[0]+x1*a[1]+x2*a[2]+x3*a[3];
i++;
}
t=a[3]*5;
for(k=1;k<=t;k++)
{
i=0;while (k!=b[i]&&i<M)i++;
if(i==M){t=0;printf("The max is %d.\n",k-1);}
}
system("pause");
}
我的程序通不过,”无效内存应用“,怎么办?