Нужно вывести в консоль 5 полых (только контуры) фигур используя язык СИ и библиотеку stdio.h .
Фигуры: Квадрат. и 4 прямоугольных треугольников направленных в разные стороны.
Системное администрирование
Вывести в консоль полые (только контуры) геометрические фигуры используя язык C и библиотеку stdio.h .
Ну просто посмотреть как это на бумажке выглядит и вывести решеточками, в чем вопрос-то?))
#include <stdio.h>
#define W 16
#define H 16
void display(void);
void clean(void);
void draw_square(int a, int x, int y);
void draw_right_triangle(int a, int b, int x, int y);
void flip_w(void);
void flip_h(void);
int main() {
clean();
draw_square(8, 4, 4);
display();
clean();
draw_right_triangle(8, 8, 4, 4);
display();
flip_w();
display();
flip_h();
display();
flip_w();
display();
clean();
return 0;
}
int buffer[H][W];
void display(){
for(unsigned h = 0; h < H; h++){
for(unsigned w = 0; w < W; w++){
printf("%c", buffer[h][w] ? 'x' : ' ');
}
printf("\n");
}
}
void clean(){
for(unsigned h = 0; h < H; h++){
for(unsigned w = 0; w < W; w++){
buffer[h][w] = 0;
}
}
}
void draw_square(int a, int x, int y){
for(unsigned w = x; w < x + a; w++){
buffer[y][w] = 1;
buffer[y + a - 1][w] = 1;
}
for(unsigned h = y; h < y + a; h++){
buffer[h][x] = 1;
buffer[h][x + a - 1] = 1;
}
}
void draw_right_triangle(int a, int b, int x, int y){
float slope = -1.0 * b / a;
for(unsigned w = 0; w < a; w++){
buffer[y][x + w] = 1;
int s_y = b - 1 + slope * w;
buffer[y + s_y][x + w] = 1;
}
for(unsigned h = y; h < y + b; h++){
buffer[h][x] = 1;
}
}
void flip_w(){
for(unsigned h = 0; h < H; h++){
for(unsigned w = 0; w < W/2; w++){
int tmp = buffer[h][w];
buffer[h][w] = buffer[h][W - 1 - w];
buffer[h][W - 1 - w] = tmp;
}
}
}
void flip_h(){
for(unsigned h = 0; h < H/2; h++){
for(unsigned w = 0; w < W; w++){
int tmp = buffer[h][w];
buffer[h][w] = buffer[H - 1 - h][w];
buffer[H - 1 - h][w] = tmp;
}
}
}
#define W 16
#define H 16
void display(void);
void clean(void);
void draw_square(int a, int x, int y);
void draw_right_triangle(int a, int b, int x, int y);
void flip_w(void);
void flip_h(void);
int main() {
clean();
draw_square(8, 4, 4);
display();
clean();
draw_right_triangle(8, 8, 4, 4);
display();
flip_w();
display();
flip_h();
display();
flip_w();
display();
clean();
return 0;
}
int buffer[H][W];
void display(){
for(unsigned h = 0; h < H; h++){
for(unsigned w = 0; w < W; w++){
printf("%c", buffer[h][w] ? 'x' : ' ');
}
printf("\n");
}
}
void clean(){
for(unsigned h = 0; h < H; h++){
for(unsigned w = 0; w < W; w++){
buffer[h][w] = 0;
}
}
}
void draw_square(int a, int x, int y){
for(unsigned w = x; w < x + a; w++){
buffer[y][w] = 1;
buffer[y + a - 1][w] = 1;
}
for(unsigned h = y; h < y + a; h++){
buffer[h][x] = 1;
buffer[h][x + a - 1] = 1;
}
}
void draw_right_triangle(int a, int b, int x, int y){
float slope = -1.0 * b / a;
for(unsigned w = 0; w < a; w++){
buffer[y][x + w] = 1;
int s_y = b - 1 + slope * w;
buffer[y + s_y][x + w] = 1;
}
for(unsigned h = y; h < y + b; h++){
buffer[h][x] = 1;
}
}
void flip_w(){
for(unsigned h = 0; h < H; h++){
for(unsigned w = 0; w < W/2; w++){
int tmp = buffer[h][w];
buffer[h][w] = buffer[h][W - 1 - w];
buffer[h][W - 1 - w] = tmp;
}
}
}
void flip_h(){
for(unsigned h = 0; h < H/2; h++){
for(unsigned w = 0; w < W; w++){
int tmp = buffer[h][w];
buffer[h][w] = buffer[H - 1 - h][w];
buffer[H - 1 - h][w] = tmp;
}
}
}
Похожие вопросы
- Какой язык программирования учить c++ Или java Начинал учить Пайтон но понял что потом не смогу учить другие языки
- C++. Получение параметров с устройства Socomec A20 подключенного через USB
- Какой должна быть маска подсети, чтобы разбить сеть класса C на 8 подсетей? И объясните почему плзз)
- Вычислить и вывести на экран в виде таблицы значения функции Python
- Точка входа в процедуру IntializeCriticalSelectionEx не найдена в библиотеке DLL KERNEL32.dll что это? Помогитееее плз
- Что самое важное при изучении языка ?
- Случайно удалил одну из системных папок диска в H:\RECYCLER.
- Можно ли одно доменное имя использовать сразу на двух хостингах?
- Что нужно для (Язык программирования)?
- Какой язык программирования учить первым?