Я хочу создать эту форму, используя вложенный цикл.
$****
*$***
**$**
***$*
****$
Однако с моими кодами,
int counter = 6;
for (row = 0; row <= counter; row ++)
{
cout << "$";
for (column = 1; column <= row ; column++)
{
cout << "*";
}
cout << endl;
}
результат:
$*
$**
$***
$****
$*****
$******
Как создать $ в каждом цикле и перемещать позиции в каждом цикле?
Вы изменяете только количество «*», которое вы печатаете. Чтобы добиться того, что вы хотите, вы можете попробовать что-то вроде этого.
int count = 0;
while(count < 5){
for(int i = 0; i < 5; ++i){
if(i == count){
cout << "$";
} else{
cout << "*";
}
}
cout << endl;
count++;
}
В вашем коде условие вложенного цикла неверно, в котором он будет печатать только значения в соответствии с номером строки. Тем не менее, ваши значения в каждой строке останутся неизменными. Только знак доллара будет продолжать двигаться. Также попробуйте создать универсальные функции, которые будут принимать целое число в качестве входных данных для подсчета строк, что является очень хорошим подходом. Вот решение:
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;
}
}
Вам нужно вывести ‘$’, когда число внутренних и внешних циклов одинаково, а в других случаях вывести ‘*’. Этот код должен работать на вас
int counter = 6;
for (row = 1; row <= counter; row ++)
{
for (column = 1; column <= counter; column++)
{
if((column == row){
cout << "$";
} else{
cout << "*";
}
}
cout << endl;
}
Я думаю, это то, что вы хотите
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(i==j)
cout<<"$";
else cout<<"*";
}
cout<<"\n";
}