Hi , i have a project in neural network (hebbian learning rule) i just want to apply it (AND gate) , I wrote a simple program but i get it to work just like it should can some one help me tracing the program .

Input pattern 1 (0,0) corresponding output -1

Input pattern 2 (0,1) corresponding output -1

Input pattern 3 (1,0) corresponding output -1

Input pattern 4 (1,1) corresponding output 1

here is the program :-

Code:

#include <iostream>
using namespace std;
int main()
{
int x[4][3],w[3],y[4][1],i,j,p;
for(i=0;i<=2;++i)
w[i]=0;
for(p=1;p<=4;++p)
x[p][0]=1;
for(p=1;p<=4;++p) {
cout<<"Enter the input Pattern number "<<p<<" : \n";
for(i=1;i<=2;++i)
cin>>x[p][i];
cout<<"Enter the corresponding output \n";
for(j=1;j<=1;++j)
cin>>y[p][j];
for(i=0;i<=2;++i)
for(j=1;j<=1;++j){
w[i]+=x[p][i]*y[p][j];
cout<<endl;
}
}
cout<<"The final weights = [ "<<w[0]<<" "<<w[1]<<" "<<w[2]<<" ]"<<endl;
clrscr();
return 0;
}

the weird thing is after enter the input patterns i get weight =[1 2 2] which supposed to be w=[1 1 1] .Thanks