Exercício 13: Escrever um programa no qual o usuário fornece um valor inteiro n e um caractere ch1 e outro caractere ch2 e uma função meio(int n, char1 ch, char2 ch) desenha um quadrado cuja metade superior e a diagonal principal é preenchida com o caractere ch1 e a metade inferior com o caractere ch2. Um exemplo de execução é dado a seguir:
Digite n: 5
Digite ch1:*
Dgite ch2: #
*****
#****
##***
###**
####*

Passo 1

Neste exercício, queremos escrever um programa em C que leia um inteiro n e dois caracteres ch1 e ch2, e desenhe um quadrado de tamanho n×n em que a parte acima da diagonal principal (incluindo a diagonal) usa ch1 e a parte abaixo da diagonal usa ch2.

Passo 2

Vamos criar uma função com o protótipo void meio(int n, char ch1, char ch2) que será responsável por imprimir esse quadrado.
Dentro de meio, usamos dois loops aninhados: o loop externo percorre as linhas i de 0 até n-1 e o loop interno percorre as colunas j de 0 até n-1.
Em cada iteração verificamos se j >= i. Se for verdade, chamamos printf("%c", ch1), caso contrário printf("%c", ch2).
Após completar o loop de colunas, chamamos para iniciar a próxima linha.

Passo 3

Na função main, basta ler interativamente os valores de n, ch1 e ch2 com scanf e depois chamar meio(n, ch1, ch2) para imprimir o quadrado.

Resposta

#include <stdio.h>
void meio(int n, char ch1, char ch2) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (j >= i)
printf("%c", ch1);
else
printf("%c", ch2);
}
printf("\n");
}
}
int main() {
int n;
char ch1, ch2;
printf("Digite n: ");
scanf("%d", &n);
printf("Digite ch1: ");
scanf(" %c", &ch1);
printf("Digite ch2: ");
scanf(" %c", &ch2);

meio(n, ch1, ch2);
return 0;
}

Exercícios relacionados