kwadrat w c++
monkey: próbuje stworzyć program, który będzie rysował figurę podobną do tego:
*−−−*
| |
| |
| |
*−−−*
tj. gwiazdka w krawędziach i po bokach − oraz |
mój kod:
#include <iostream>
using namespace std;
int main(){
int width=0,height=0;
cout << "width, height: ";
cin >> width >> height;
for(int y=0; y<height; y++){
for(int x=0; x<width; x++){
if( (y==0 && x==0) || (y=height−1 && x==0) ||
(y==0 && x==width−1) || (y=height−1 && x==width−1)){
cout << "*";
}
else if( (y==0 && x>0 && x<width−1) ||
(y==height−1 && x>0 && x<width−1)){
cout << "−";
}
else if( (y>0 && y<height−1 && x==0) ||
(y>0 && y<height−1 && x==width−1)){
cout << "|";
}
else{
cout << " ";
}
}
cout << endl;
}
}
10 paź 19:43
monkey: wydaje mi się, że nie iteruje się 1. pętla, ale nie potrafie tego naprawic
10 paź 19:47
monkey: sprawdziłem i faktycznie nie interuje się y, ktos potrafi to wyjasnic?
10 paź 19:58
monkey: nie iteruje*
10 paź 19:58
jc: Trochę zmieniłem i działa.
#include<iostream>
using namespace std;
int main(){
int width=0,height=0;
cout << "width, height: ";
cin >> width >> height;
cout << '*';
for(int x = 2; x < width; x++) cout << '−';
cout << '*' << endl;
for(int y=2; y < height; y++){
cout << '|';
for(int x=2; x < width; x++) cout << ' ';
cout << '|' << endl;
}
cout << '*';
for(int x = 2; x < width; x++) cout << '−';
cout << '*' << endl;
}
10 paź 20:15
monkey: a widzisz moze co jest nie tak w moim kodzie?
10 paź 21:25
jc: Zamień
y=height−1
na
y==height−1
10 paź 21:36
jc: Przynajmniej się zatrzymuje ...
10 paź 21:38
monkey: nawet nie wiesz jak bardzo jestem Ci wdzieczny

siedziałem nad tym kodem jakies 2h
10 paź 21:45
monkey: a wystarczyło tylko w 2. miejsach zamienic = na ==
10 paź 22:00
monkey: a mialbys moze pomysł jak cos dorzucić do kodu, aby dodatkowo rysowana była przekątna?
10 paź 23:23
Krzysiek: nie znam się na programowaniu, ale chyba wystarczy sprawdzac wartość pętli nadrzędnej w
podrzędnej , i gdy są takie same rysować slasha
10 paź 23:38
monkey: pomysl dobry doputy figura jest kwadrat
10 paź 23:44
Dziadek Mróz: oblicz współrzędne punktów przez jakie przechodzi przekątna i na nich ją rysuj
11 paź 01:59
jc: Poniższy program rysuje przekątną.
#include<iostream>
using namespace std;
int main(){
int width=0,height=0;
cout << "width, height: ";
cin >> width >> height;
cout << '*';
for(int x = 2; x < width; x++) cout << '−';
cout << '*' << endl;
for(int y=2; y < height; y++){
cout << '|';
int x = 2;
for(; x*height < width*y; x++) cout << ' ';
if(x < width) {cout << '*'; x++;}
for(; x < width; x++) cout << ' ';
cout << '|' << endl;
}
cout << '*';
for(int x = 2; x < width; x++) cout << '−';
cout << '*' << endl;
}
11 paź 13:25
monkey: dzieki
11 paź 17:01