Program ma tworzyć kwadrat taki jak np. ten ###
# #
###
Użytkownik ma wprowadzić wysokość i szerokość kwadratu ale nie mogę być mniejsze od 3.
W programie mają zostać użyte max 2 pętle.
Jak tor zrobić? Zrobiłem pierwszą pętle która wczytuje i sprawdza czy szerokość i wysokość są większe od 3.
0
3
Wysokość i szerokość kwadratu o_O, kwadrat ma wszystkie boki równej długości.
2
Działa, ale prowadzącemu nie pokażesz :D
#include <iostream>
using namespace std;
int main()
{
size_t sz,i;
for(cin>>sz,i=sz*sz;;(sz>=3)&&(i--);cout<<'#'<<(i%sz?"":"\n")) if(!i) cin>>sz,i=sz*sz;
return 0;
}
3
Działa, prowadzącemu pokażesz ale nie zaliczysz :/
#include <algorithm>
#include <iostream>
#include <string>
#include <iterator>
#include <cstddef>
using namespace std;
int main() {
size_t sz;
cin >> sz;
fill_n(ostream_iterator<string>(cout, "\n"), sz, string(sz, '#'));
}
1
Można to zrobić i bez żadnej pętli:
#include <iostream>
void print_character(int row, int column, int limit) {
if(column == limit) {
return;
} else if(row==limit) {
std::cout.put('\n');
print_character(0, column+1, limit);
} else {
std::cout.put('#');
print_character(row+1, column, limit);
}
}
void get_input() {
int size;
std::cin >> size;
if(size < 3) {
get_input();
} else {
print_character(0, 0, size);
}
}
int main() {
int size = 0;
while(size < 3) {
std::cin >> size;
}
print_character(0, 0, size);
}
0
Inne wynaturzenia...
#include <iostream>
#include <iomanip>
int main() {
unsigned sz;
std::cin >> sz;
auto row = std::setw(sz + 1);
std::cout << std::setfill('#');
if(sz >= 3) {
while(std::cout << row << '\n', --sz);
}
}
albo...
#include <iostream>
void square(int mod, int counter) {
if(!(counter % mod) && (counter != mod * mod)) {
std::cout.put('\n');
}
if((mod < 3) || !counter) {
return;
}
square((std::cout.put('#'), mod), counter - 1);
}
int main() {
int sz;
square((std::cin >> sz, sz), sz * sz);
}
Tak swoją drogą, jakby "wiercić dziurę w brzuchu", to standard nie definiuje sposobu implementacji ani manipulatorów ani algorytmów. Stąd, precyzyjnie to wyłącznie przypuszczenie że są to pętle (i oczywiste że w popularnych implementacjach są to pętle) :-) Nie definiuje także obsługi rekurencji ani jej "ogonowej optymalizacji".
Ot... fistaszki...