Я новичок в программировании.
В настоящее время я пишу код, который принимает число от 1 до 9 строк и столбцов у пользователя. для однозначных цифр должен быть «0»
вывод должен выглядеть так:
Type a row number between 1 and 9: 3
Type a column number between 1 and 9:7
01 02 03 04 05 06 07
08 09 10 11 12 13 14
15 16 17 18 19 20 21
Вот код, который у меня сейчас есть:
#include <iostream>int main() {
int r,c,i,j,n,k;
cout<<"Type a row number between 1 and 9: ";
cin>>r;
while (r<1 || r>9){
cout << "Please enter a number between 1 and 9.";
cin>>r;
}
cout<< "Type a column number between 1 and 9: ";
cin>>c;
while (c<1 || c>9){
cout << "Please enter a number between 1 and 9.";
cin>>c;
}
n=r*c;
for(k=0; k<n; k++){
}
for(i=0; i<r; i++)
{
for(j=0; j<c; j++)
{
cout<<i<<" ";
}
cout << endl;
}
return 0;
}
Я добавил заявления о достоверности для пользователей.
Это выводит:
Type a row number between 1 and 9: 3
Type a column number between 1 and 9:7
0 0 0 0 0 0 0
1 1 1 1 1 1 1
2 2 2 2 2 2 2
Я не могу понять, 0 и как реализовать числа в прямоугольнике.
Пожалуйста помоги.
Вы близки, просто измените выходной цикл на:
int counter = 1;
for (i = 0; i < r; i++)
{
for (j = 0; j < c; j++)
{
cout << counter << " ";
++counter;
}
cout << endl;
}
Если вы хотите избежать дополнительной локальной переменной, вы также можете просто сделать:
cout << (i*c + j + 1) << " ";
Я бы предпочел явную версию, используя counter
поскольку это делает очевидным то, что вы делаете, и вы можете легко переключать порядок циклов / выходных данных при желании.