我写了一个程序,但我认为用一段代码两次不太好。
有问题的地方在这里:
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) {
我不能把它结合起来。我怎么能做到呢?
发布于 2015-03-31 20:15:46
试试下面的代码:
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;
}
}
}
}
发布于 2015-03-31 20:15:24
简单的方法可以是:
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;
}
}
}
}
https://stackoverflow.com/questions/29382678
复制