c++小程序问题!就是看不出那儿错啦- -!

来源:百度知道 编辑:UC知道 时间:2024/06/15 00:48:00
#include<iostream.h>
int flag(int,int);
int main()
{int a,b,c;
cin>>a;
cin>>b;
c=flag(a,b);
cout<<c;
return(0);
}
int flag(int a,int b)
{int i;
i=(a>b)?(b-1):(a-1);
for(;i>0;i--)
if(a%i&&b%i) break;
return i;
}
error C2143: syntax error : missing ';' before '%'
error C2059: syntax error : ')'
到底哪儿少了“;”??还有那个“)”是嘛意思??我老师都看不出来...
惭愧...求高人解答~~~

你编译器的问题,vc6.0上没有问题

#include<iostream> //你那个写法是很久以前的现在用这个
using namespace std; //这个是个命名空间
int flag(int,int);
int main()
{int a,b,c;
cin>>a;
cin>>b;
c=flag(a,b);
cout<<c;
return(0);
}
int flag(int a,int b)
{int i;
i=(a>b)?(b-1):(a-1);
for(;i>0;i--)
if(a%i&&b%i) break;
return i;
}

我把你的代码换成这样了的!
还有不懂的 可以问我

没语法问题

VC 6.0 可以运行的
你把for 语句下面加上一个大括号,程序就能运行出来正确的结果了.
for(;i>0;i--)
{
if(a%i&&b%i)
break;
}

#include<iostream.h>
改为
#include<iostream>
using namespace std;

经本人在vc9下验证无错误

从上面看来没有语法错误。