此图像包含图案。 '*' 被减去,'-' 被添加。
我很困惑我不允许使用嵌套循环。我不知道为什么它让我感到困惑。
#include <iostream>
using namespace std;
int main(){
string a="*";
for (int i=0; i<4; i++){
cout<<a<<endl;
a=a+"*";
}
}
我尝试使用此代码来测试打印成功的模式。以下是它制作的图案。
*
**
***
****
这看起来不错,因为 C++ 允许 a=a+"*"
将字符串添加到字符串数据中。但我需要的模式是
****
***-
**--
*---
其中可以添加“-”,但如何减去“*”。我不能做a=a-'*'
。我需要使用字符串的索引吗?但只允许一个循环。
答案 0 :(得分:2)
for (int i=0; i<4; i++){
cout << string((4-i), '*') << string(i, '-')<< endl;
}
答案 1 :(得分:0)
您可以更改(覆盖)字符串中的字符。
#include <iostream>
#include <string>
using namespace std;
int main(){
const int n=4;
string a(n,'*');
for (int i=0; i<n; i++){
cout<<a<<endl;
a[n-i-1]='-';
}
}
答案 2 :(得分:0)
*
。这使用一个循环(或不使用;这取决于 4 是否始终为 4,还是可变的)-
替换计数的字符。这是另一个循环,但它不是嵌套循环。在进行替换之前,为循环的每次迭代输出字符串。对于 std::string s
,您可以使用 s[i]='-';
替换字符串中的单个字符,如果您知道 i
在字符串的长度内字符串。
(基本上是@MikeCAT 所说的)