用C++写了个01背包的程序,但是总是报错:[Error] ld returned 1 exit status
上面还有一大堆看不懂的东西,如图所示:
#include<iostream>
#include<algorithm>
using namespace std;
const int MAXN=105;
const int MAXM=1e9+5;
int n,m;
int w[MAXN],c[MAXN],f[MAXM];
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>w[i]>>c[i];
}
for(int i=1;i<=n;i++){
for(int j=m;j>=w[i];j--){
f[j]=max(f[j],f[j-w[i]]+c[i]);
}
}
cout<<f[m];
return 0;
}
检查了一下,原来运行的窗口关了,360关了,函数名没错,没有数组越界,没有语法错误。
根据您提供的代码,并没有明显的语法错误。由于没有具体的错误提示信息,我将给出一些可能导致错误的原因和解决方法:
编译器错误:关闭窗口或杀死进程可能导致编译器错误。尝试重新打开Dev C++,并重新编译程序。确保使用的是合适的编译器版本。
编译器配置问题:有时候,编译器的配置可能出现问题导致编译失败。可以尝试重置编译器的设置,或者换用其他编译器。
编译器选项:请确保在编译选项中设置了正确的标准(例如C++11、C++14、C++17等)。这通常可以在编译器的设置或选项中进行更改。
检查输入:确保输入的n和m的值符合预期的范围,并且输入的w和c数组的值也没有超出范围。
确保数组足够大:根据您的代码,f数组的大小是MAXM(即1e9+5),请确保MAXM的值足够大以容纳结果。
如果上述方法无法解决问题,请提供更详细的错误信息,以便我可以给出更准确的帮助。
你把 MAXM 改小一点就好咯
可参考 https://blog.csdn.net/luyibing2017/article/details/124086221
【以下回答由 GPT 生成】
这个问题是由于Dev C++编译器无法找到链接库造成的。你可以尝试以下几个解决方案:
更新Dev C++:重新安装或更新Dev C++到最新版本,有时候旧版本可能存在一些问题。
检查编译器设置:打开Dev C++,点击菜单栏的"Tools" -> "Compiler Options",在"Directories"选项卡下,确保所有的库目录都正确引用。
检查环境变量:确保系统的环境变量配置正确。在开始菜单中搜索"环境变量",打开"编辑系统环境变量",在"系统变量"中找到名为"Path"的变量,确认其中包含了Dev C++的安装路径。
使用其他编译器:如果以上方法都无效,可以考虑使用其他编译器,比如MinGW或Visual Studio等。
如果以上方法都无效,那可能是代码本身存在问题,或者是其他未知的原因导致。
【相关推荐】