|
|
|
| Здравствуйте!
Нужно ромб вывести из звездочек. Делал уже шахматную доску, а вот ромб до ума довести не могу.
Допустим диагональ равна 5, то вид примерно такой:
и т.д.
Вот, что надумал. Сделать по клеткам, то есть ось x и y, вот:
#include <iostream>
using namespace std;
void main()
{
int x, y, N=5;
for(y=1;y<=N;y++) // вертикаль
{
for(x=1;x<=N;x++) // горизонталь
{
}
cout << "\n";
}
system("pause");
}
|
| |
|
|
|
|
|
|
|
для: Belkin
(13.01.2012 в 03:15)
| | Подход верный... только не следует забывать, что любую сложную фигуру лучше трианглурировать, т.е. думать о ней как о нескольких треугольниках. Так ромб - это четыре прямоугольных треугольника, значит у нас будет минимум 4 частных случая.
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
int i, j, N = 11;
int center = N / 2;
for(i = 0; i < N; i++)
{
for(j = 0; j < N; j++)
{
if(i <= center)
{
// Верхняя половина ромба
if(j >= center - i && j <= center + i)
cout << "*";
else
cout << " ";
}
else
{
// Нижняя половина ромба
if(j >= center + i - N + 1 && j <= center - i + N - 1)
cout << "*";
else
cout << " ";
}
}
cout << endl;
}
system("PAUSE");
return 0;
} |
| |
|
|
|
|
|
|
|
для: cheops
(13.01.2012 в 11:43)
| | Буду знать, спасибо! | |
|
|
|
|
|
|
|
для: Belkin
(13.01.2012 в 03:15)
| | а можно ли так прописать, если значения будут разными у двух диагоналей? | |
|
|
|