如何组合代码
How can I combine code
我写了一个程序,但我觉得用一个代码两次不好。
有问题的地方在这里:
if (2 * cell_price > large_cell_price) {
for (int i = 0; i < parquet.size(); ++i) {
for (int j = 0; j < parquet[i].size(); ++j) {
if (parquet[i][j] == '*') {
if (j + 1 < parquet[i].size() && parquet[i][j + 1] == '*') {
j++;
sum += large_cell_price;
} else {
sum += cell_price;
}
}
}
}
} else {
for (int i = 0; i < parquet.size(); ++i) {
for (int j = 0; j < parquet[i].size(); ++j) {
if (parquet[i][j] == '*') {
sum += cell_price;
}
}
}
}
我循环两次:
for (int i = 0; i < parquet.size(); ++i) {
for (int j = 0; j < parquet[i].size(); ++j) {
我不能组合。我该怎么做?
试试这个代码:
for (int i = 0; i < parquet.size(); ++i) {
for (int j = 0; j < parquet[i].size(); ++j) {
if (parquet[i][j] == '*') {
if (j + 1 < parquet[i].size() &&
parquet[i][j + 1] == '*' &&
(2 * cell_price > large_cell_price)) {
j++;
sum += large_cell_price;
} else {
sum += cell_price;
}
}
}
}
简单的方法可以是:
for (int i = 0; i < parquet.size(); ++i) {
for (int j = 0; j < parquet[i].size(); ++j) {
if (2 * cell_price > large_cell_price) {
if (parquet[i][j] == '*') {
if (j + 1 < parquet[i].size() && parquet[i][j + 1] == '*') {
j++;
sum += large_cell_price;
} else {
sum += cell_price;
}
}
} else {
if (parquet[i][j] == '*') {
sum += cell_price;
}
}
}
}
相关文章:
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 代码在main()中运行,但在函数中出现错误
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 编译包含字符串的代码时遇到问题
- 我在c++代码中生成了一个运行时#3异常
- 如何将两个代码组合成一个函数?
- 如何简化代码并将开关组合成一个功能?
- "Double or Nothing"赌博机器代码无法超过15组合
- 如何组合代码
- 删除停止语,然后应用大小写折叠(如何组合两个代码)
- 如何将查找组合的几个循环代码转换为递归方法
- 为什么与组合相比,私有继承会增加有人破坏我的代码的概率
- 是否有可能组合对称的代码片段
- 将代码组合在一起
- 在单个可执行文件中组合c#和c++代码
- 对象组合促进了代码重用.(T / F)的原因
- 如何在boost:: Python扩展模块中正确组合c++和Python代码
- 组合类C++中的冗余代码
- 在同一个R包中组合C代码
- 有没有更好的方法来组合静态库而不携带一堆不必要的代码?