C言語のソースコードでエラーが出ますが、原因がわかりません。
助けて頂ければ幸いです。
C:\Users\dell-\Desktop\annd.c(33) : error C2143: syntax error :
missing ';' before 'type' C:\Users\dell-\Desktop\annd.c(34) : error
C2143: syntax error : missing ';' before 'type'annd.exe - 1 error(s), 0 warning(s)
#include<stdio.h>
#include<math.h>
#include <stdlib.h>
#include <time.h>
int x[2];// 入力层
double w[2][2];//入力层と中间层の重み
double a[2];//中间层
double cw[2];//中间层と出力层の重み
double o;//出力层
double sum;//中间层と出力层の重みと中间层の挂け算の総和
double bias;//バイアス
double hoge;
int T;//教师信号
double dnn_sig(double in){ //sigmoid
return 1.0/(1.0+exp(-1.0*in)); // ゲインを1.0に
}
int A_nd(int x,int y) {//AND関数
if(x==1&&y==1)
return 1;
else
return 0;
}
int main()
{int i,j,n;
int t=0;
n=0;
bias=0.5;
double w[2][2]={0.2,0.2,0.4,0.7};//入力层と中间层の重み
double cw[2]={0.3,0.4};
sum=0;
hoge=0;
do
{ srand(time(NULL));
for(i=0;i<2;i++)//ランダム and
{
x[i]=rand()%2;
}
T=A_nd(x[0],x[1]);
for(j=0;j<2;j++)
{
for(i=0;i<2;i++)
{
hoge+=w[j][i]*x[i];
}
a[j]=dnn_sig(hoge);
hoge=0;
sum+=a[j]*cw[j];
}
o=dnn_sig(sum-bias);
sum=0;
for(j=0;j<2;j++)
{
cw[j]+=0.1*(T-o)*a[j];
}
bias-=0.1*(T-o);
printf("%.9f\n",T-o);
n++;
}while( (double)o!=(int) T&&n<1000000);
}