O que o programa a seguir faz?

Passo 1

Fala Galera!!! Tudo certo? Espero que sim!!! Bora para mais um exercício.

Bora analisar o que está acontecendo no programa do exercício.

#include

/* função main inicia a execução do programa */

int main(void){

int c; /* variável para manter entrada de caractere pelo usuário */

if ( ( c = getchar() ) != EOF ) {

main();

printf( "%c", c );

} /* fim do if */

return 0; /* indica conclusão bem--sucedida */

} /* fim do main */

Dentro da função main(void) é definido uma variável c para manter entrada de caracteres, em seguinte é usado um if que recebe como condição ( ( c = getchar() ) ! EOF ). A função getchar() é usada para ler um único caractere do fluxo de entrada padrão em C.

O comando EOF ou fim de arquivo, é uma condição do sistema operacional de um computador, atingida quando não há mais dados a serem lidos.

Ainda dentro do if a função main() é chamada recursivamente e printado o valor da variável c.

A condição if é finalizada e o programa retorna 0 se a conclusão for bem-sucedida.

Passo 2

Resumindo o programa, ele introduz um caractere e chama repetidamente main() até que o comando EOF seja introduzido. O comando EOF é um valor que depende do sistema, no Windowns esse comando pode ser passado quando pressionadas as teclas Ctrl+ Z, em outros sistemas podem ser pressionadas as teclas Ctrl + D.

Passo 3

Agora precisamos escrever o programa no nosso compilador e ver o que irá ter como saída. A saída então será:

Ao digitar as letras ‘a, b e c’ apertar enter e depois o comando Ctrl + Z, cada letra introduzida é então saída em ordem inversa. Isso ocorre pelo fato da função getchar () armazenar cada caractere na variável c, e a cada vez que um caractere é digitado o primeiro inserido é “empurrado” para o final. O processo pode ser representado da seguinte forma:

Digitado caractere a:

c = [a]

Digitado caractere b:

c = [b] [a]

Digitado caractere c:

c= [c] [b] [a]

Dessa forma quando imprimimos a variável c, os caracteres são exibidos na ordem inversa.

Assim finalizamos mais um exercício Galera!! Por hoje é só, até o próximo exercício.

Resposta

Ei, a resposta está no passo a passo :)