我想使用嵌套循环创建此形状。
$****
*$***
**$**
***$*
****$
但是我的代码
int counter = 6;
for (row = 0; row <= counter; row ++)
{
cout << "$";
for (column = 1; column <= row ; column++)
{
cout << "*";
}
cout << endl;
}
结果是:
$*
$**
$***
$****
$*****
$******
如何在每个循环中创建$并在每个循环中移动位置?
答案 0 :(得分:1)
您只会改变打印的“*”数量。为了达到你想要的效果,你可以试试这样的东西。
int count = 0;
while(count < 5){
for(int i = 0; i < 5; ++i){
if(i == count){
cout << "$";
} else{
cout << "*";
}
}
cout << endl;
count++;
}
答案 1 :(得分:0)
在您的代码中,嵌套循环条件不正确,它只会根据行号打印值。但是,每行中的值将保持不变。只有美元符号才会继续移动。另外,尝试制作通用函数,它将整数作为行计数的输入,这是一种非常好的方法。这是解决方案:
void createDollarStars(int counter)
{
int row,column;
for (row = 0; row < counter; row ++)
{
for (column = 0; column < counter ; column++)
{
if(row == column)
{
cout<<"$";
}
else
{
cout << "*";
}
}
cout << endl;
}
}
答案 2 :(得分:0)
当内循环和外循环计数相同时,您需要打印'$',在其他情况下打印'*'。此代码应该适合您
int counter = 6;
for (row = 1; row <= counter; row ++)
{
for (column = 1; column <= counter; column++)
{
if((column == row){
cout << "$";
} else{
cout << "*";
}
}
cout << endl;
}
答案 3 :(得分:-1)
我认为这就是你想要的
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(i==j)
cout<<"$";
else cout<<"*";
}
cout<<"\n";
}