- Faça um programa utilizando o comando “do - while”, este programa deve ficar lendo uma letra por vez do teclado até que o operador digite a letra x. Após o operador digitar x o programa deve apresentar na tela o número de vezes que o operador digitou dois caracteres iguais em sequencia.
Passo 1
O enunciado pede um programa em C que use o laço
do – while
para ler um caractere de cada vez até o operador digitar x
. Quando isso acontecer, o programa deve exibir quantas vezes o usuário digitou dois caracteres iguais em sequência. O conteúdo principal é manipulação de entrada de caracteres, controle de fluxo com do – while
e contagem de ocorrências.Passo 2
Vamos definir as variáveis necessárias:
–
–
Inicializamos
–
char atual, anterior;
para armazenar o caractere lido na iteração corrente e o da iteração anterior.–
int cont = 0;
para contar quantas vezes apareceram duas letras iguais em sequência.Inicializamos
anterior
com um valor que não seja letra (por exemplo, zero) para que na primeira leitura não haja comparação válida.Passo 3
Esboço do algoritmo em pseudo-código:
inicializa anterior \(=0\)
inicializa cont \(=0\)
do {
lê caractere em atual
if (atual != 'x') {
if (atual \(==\) anterior)
incrementa cont
atribui anterior = atual
}
} while (atual != 'x');
exibe cont
Note que só comparamos quando
atual
for diferente de 'x'
, para não contar a letra de saída.Passo 4
Agora traduzimos para C, tratando a leitura caractere a caractere (por exemplo, com
getchar()
) e exibindo o resultado ao final.Resposta
#include <stdio.h>
int main() {
char atual, anterior \(=0\);
int cont \(=0\);
printf("Digite letras (termina em 'x'):
");
do {
atual = getchar(); // lê um caractere
// descarta o newline se quiser ignorar ENTERs
if (atual \(==\) '
') continue;
if (atual != 'x') {
if (atual \(==\) anterior) {
cont\(++\);
}
anterior = atual;
}
} while (atual != 'x');
printf("Total de pares iguais em sequência: %d
", cont);
return 0;
}