帮我看看我的C++程序有什么语法错误?

来源:百度知道 编辑:UC知道 时间:2024/05/30 06:42:44
程序如下:

#include<iostream>
using namespace std;
#define Long 8

int search(float a[Long])
{
int i,j=0;
for(i=0;i<Long;i++)
{
if(a[i]!=0)return i;
}
} //寻找首个非零元
void Eculid(float a[],float b[],int j,int k)
{
int i,s;
float r[Long];
do
{
r[Long]=0;
s=a[i]/b[j];
for(i=0;i<Long;i++)
{
if(i+k-j<Long)b[i+k-j]=b[i];
else b[i]=0;
}//b的移位
for(i=0;i<Long;i++) r[i]=a[i]-b[i]*s;
j=k;
k=search(r[Long]);
for(i=0;i<Long;i++)
{
a[i]=b[i];
b[i]=r[i];
r[i]=0;
}//A(x)<-B(x) b(x)<-r(x) r(x)<-0
}while(k<Long)
}//Eculid Over
void main()
{
float a[Long],b[Lon

逻辑我没看,我只把语法错误给你改过来了,你自己看吧

#include "stdafx.h"
#include <iostream.h>
#define Long 8

int search(float a[Long])
{
int i,j=0;
for(i=0;i<Long;i++)
{
if(a[i]!=0)
return i;
else
return -1;
}
return -1;
} //寻找首个非零元

void Eculid(float a[],float b[],int j,int k)
{
int i;
float r[Long],s;
do
{
r[Long]=0;
s=(int)a[i]/b[j];
for(i=0;i<Long;i++)
{
if(i+k-j<Long)b[i+k-j]=b[i];
else b[i]=0;
}//b的移位
for(i=0;i<Long;i++) r[i]=a[i]-b[i]*s;
j=k;
k=search(r);
for(i=0;i<Long;i++)
{
a[i]=b[i];
b[i]=r[i];
r[i]=0;
}//A(x)<-B(x) b(x)<-r(x) r(x)<-0
}while(k<Long) ;
}//Eculid Over

int main(int argc, char* argv[])
{
float a[Long],b[Long];
int i,j