2 tpsopf Tpsopf 于 2015.07.10 17:46 提问

不能运行,什么地方出错了

#include
int val1898(int [],int);
main(){
int i,j,r=0;
bool flag;
int *a=new int [r];
for(i=2;i<=2000;i++){
for(j=i/2;j>=2;j--){
if(i%j==0)
flag=false;
else{
flag=true;
a[r++]=i;
}

    }
}
val1898(a,r);
return 0;

}
int val1898(int b[],int r){
int x[r-1],i,s=0,j;
for(i=0;i<r-1;i++)
x[i]=b[i+1]-b[i];
for(i=0;i<r-1;i++){
for(j=0;j<r-1;j++){
s=x[i]+x[j];
if(s==1898)
printf("%d---%d",i,j);
}
}
return 0;
}


4个回答

frank_20080215
frank_20080215   2015.07.10 18:13

重载定义产生了二义性,以至于无法编译。
两个函数的返回类型一样、形参类型和形参数量都一样。编译时认为两个函数是重复定义的错误。
编译时,重载函数的形参的名称是忽略不计的。

Tpsopf
Tpsopf 能告诉我怎么改吗
2 年多之前 回复
Tpsopf
Tpsopf 谢谢
2 年多之前 回复
Tpsopf
Tpsopf 谢谢
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2015.07.10 18:35

根本就不能编译。你的代码基本不能在任何一个现代的C++编译器上编译,像main函数不指定返回值,以及定义变量不初始化等等,这些都是30年以前遗留下来的陋习。
当然这不是你的责任,我只能说你的老师很坑。

Tpsopf
Tpsopf 谢谢
2 年多之前 回复
Tpsopf
Tpsopf 额,能说明哪错了吗?
2 年多之前 回复
cuiwei1026522829
cuiwei1026522829   Ds   Rxr 2015.07.11 16:05

粗略一看,第一行include没有写引入哪些库函数啊
二。int main(){
return 0;
}
这样写比较好

Tpsopf
Tpsopf 不好意思,可能复制弄掉了,但是这不是重点,问题是不能运行是怎么回事
2 年多之前 回复
cuiwei1026522829
cuiwei1026522829   Ds   Rxr 2015.07.11 16:06

还有printf是C语言的专用

Tpsopf
Tpsopf 我想说的就是C语言,标签用成C++了
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片