Нужно 3 отдельных выхода

#include <iostream>
using namespace std;

int main (){

int row,
column = 0,
colCount = 3,
rowCount = 3;

//for loop
for (column; column < colCount; column++){

for(row = 0; row <= (rowCount - 1); row++){

cout << column << " " << row;

if(row < (rowCount - 1)){
cout << ", ";
}

}

cout << endl;

}

//while loop
while(column < colCount){

while(row < rowCount){

cout << column << " "<< row;

if(row < (rowCount - 1)){
cout << ", ";
}

row++;

}

cout << endl;
column += 1;
row = 0;
}

//do while loop
do{
do{
cout << column << " "<< row;

if(row < (rowCount - 1)){
cout << ", ";
}

row++;
}while(row < rowCount);

cout << endl;
column +=1;
row = 0;
}while(column < colCount);

}

При комментировании 2/3 циклов каждый из них будет выдавать желаемый результат.
Все вместе это, кажется, бежит друг на друга и добавляет дополнительный вывод.

Токовый выход:

0 0, 0 1, 0 2
1 0, 1 1, 1 2
2 0, 2 1, 2 2
3 3

Требуемый выход:

0 0, 0 1, 0 2
1 0, 1 1, 1 2
2 0, 2 1, 2 2

0 0, 0 1, 0 2
1 0, 1 1, 1 2
2 0, 2 1, 2 2

0 0, 0 1, 0 2
1 0, 1 1, 1 2
2 0, 2 1, 2 2

Как получить вывод из каждого цикла?

0

Решение

Вы можете оставить for цикл как есть:

    for (; column < colCount; column++){
for(row = 0; row <= (rowCount - 1); row++){
std::cout << column << " " << row;
if(row < (rowCount - 1))
std::cout << ", ";
}
std::cout << std::endl;
}

Сейчас column а также row попадает в 3 в for-loop выше, что делает его while loop никогда не будет казнен. Итак, вы должны сделать их оба 0,

И третий do-while цикл всегда выполняется перед проверкой любых условий, поэтому вы получаете 3 3

В любом случае, вот решение вашей проблемы.

#include <iostream>

int main ()
{
int row, column = 0, colCount = 3, rowCount = 3;

//for loop
for (column; column < colCount; column++){
for(row = 0; row <= (rowCount - 1); row++){
std::cout << column << " " << row;
if(row < (rowCount - 1))
std::cout << ", ";
}
std::cout << std::endl;
}
std::cout<<std::endl;
//while loop
column = 0;
row = 0;
while(column < rowCount){
while(row < rowCount){
std::cout << column << " "<< row;
if(row < (rowCount - 1))
std::cout << ", ";
row++;
}
std::cout << std::endl;
column += 1;
row = 0;
}
//do while loop
std::cout<<std::endl;
column = 0;
row = 0;
do{
do{
std::cout << column << " "<< row;
if(row < (rowCount - 1))
std::cout << ", ";
row++;
}while(row < rowCount);
std::cout << std::endl;
column +=1;
row = 0;
}while(column < colCount);
return 0;
}
1

Другие решения

1) Вы должны инициализировать column в начале каждого цикла 0,
2) В пределах while а также do петли, инициализировать row в 0 перед входом во внутренний цикл

Выход 3 3 в конце концов, из-за одного входа в do-while петля.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector