社区讨论
关于定义变量的问题
灌水区参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @loqvadij
- 此快照首次捕获于
- 2023/11/09 15:28 2 年前
- 此快照最后确认于
- 2023/11/09 17:42 2 年前
刚刚在做题的时候发现下面这种方式会有问题
CPPdp[j]=max(dp[j],dp[j-w[i]]+v[i]);
if(pos[i].size()>=1)int t1=pos[i][0];
if(pos[i].size()>=2)int t2=pos[i][1];
if(pos[i].size()==1 && j>=w[i]+w[t1])//调用t1
else if(pos[i].size()==2)
{
//调用t1,t2
}
应换为
CPPdp[j]=max(dp[j],dp[j-w[i]]+v[i]);
int t1,t2;
if(pos[i].size()>=1)t1=pos[i][0];
if(pos[i].size()>=2)t2=pos[i][1];
if(pos[i].size()==1 && j>=w[i]+w[t1])//调用t1
else if(pos[i].size()==2)
{
//调用t1,t2
}
虽然我知道第一种方法出错的原因是因为定义在if里会让其上一级中的语句的无法查询到(应该是这个原因吧?),但是程序正常一行行运行并不会出现未定义t1 / t2而使用t1 / t2的情况,因此想问下有关变量定义、使用、查询的在计算机中的规律的问题。
回复
共 3 条回复,欢迎继续交流。
正在加载回复...