Kwadrat z dwóch liter

2

Napisałem program, który generuje kwadrat o wymiarach podanych w kodzie. Niestety wszystko się rozjeżdża jak zmienię wysokość i szerokość w kodzie. Jak przepisać to, aby po wpisaniu innej wysokości i szerokości program miał takie samo działanie. Czyli litera X otoczona przez jakąś literę Y.

#include <stdio.h>
#include <stdlib.h>

int main() {
int s = 6;
int w = 3;

int n = 8;



for (s = 0; s < n; ++s) printf("A"); 

printf("\n");

for (s = 0; s < n - 5; ++s) {

printf("A"); 

for  (w = 0; w < n - 2; ++w) printf("B"); 

printf("A\n");
}

for (s = 0; s < n; ++s) printf("A");

printf("\n");

return 0;
}
0

A może tak zrób:

#include <stdio.h>

int main() {
    int i;
    int j;
    int wys=10;
    int prostokat=0;

    for(i=0;i<wys;i++){
        printf("B");
        for(j=0;j<wys+prostokat-2;j++){
            if(i>0 && i<wys-1) printf("A");
            else printf("B");
        }
        printf("B\n");
    }
    return 0;
}

Jak dasz zmiennej prostokat wartość jakoś tak powyżej 15 to na konsoli narysujesz prostokąt. Niestety znaki konsoli są "bardziej wyższe niż dłuższe" :)
Równie dobrze wys+prostokat-2 możesz zamienić na szerokosc-2 i też będzie git.

0

Problem w tym, że muszę mieć zdefiniowaną szerokość i wysokość w kodzie i musi to działać z każdą liczbą wpisaną w kodzie...np szerokość 6 i wysokość 3 albo szerokość 2 i wysokość 2 oczywiście dotyczy to litery wpisanej do środka. Natomiast te litery w środku ma otaczać inna.

1

Wystarczyło zmodyfikować dwa/trzy miejsca w pętli:

#include <stdio.h>

int main() {
    int i;
    int j;
    int wys=5;
    int szer=5;

    for(i=0;i<wys+2;i++){
        printf("B");
        for(j=0;j<szer;j++){
            if(i>0 && i<wys+1) printf("A");
            else printf("B");
        }
        printf("B\n");
    }
    return 0;
}

wys i szer określa wewnętrzną figurę.

0

No tak...
Dokładnie o to mi chodziło. Dzięki za pomoc. To teraz zabieram się za dalsze dłubanie w kodzie :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1