Obtenha soluções para suas perguntas no Sistersinspirit.ca, a plataforma de Q&A mais rápida e precisa. Conecte-se com uma comunidade de especialistas prontos para ajudar você a encontrar soluções precisas para suas dúvidas de maneira rápida e eficiente. Descubra um vasto conhecimento de profissionais em diferentes disciplinas em nossa amigável plataforma de perguntas e respostas.
Sagot :
Resposta:
Módulo 3: Aula 4: Estruturas de controle de fluxo
Exercício 1: Página c410.html
Enunciado:
Altere o último exemplo da página para que ele escreva cada letra 5 vezes seguidas. Para isto, use um 'if' para testar se o contador é divisível por cinco (utilize o operador %) e só então realizar a atualização em index.
Solução:
Neste exercício, segundo a sugestão apresentada, bastava se adicionar a linha de código que está comentada, no exercício abaixo. A variável index, que aponta qual letra da string sera impressa, e que era incrementada circularmente a cada iteracao, agora so e incrementada de 5 em 5 iteracoes, ou seja, quando o resto da divisao de contador por 5 for 4, ou seja, seu valor vai variar de 0 a 4.
#include <stdio.h>
main()
{
int index = 0, contador;
char letras[5] = "Joao";
for (contador=0; contador<1000; contador++)
{
printf("\n%c",letras[index]);
if (( contador % 5 ) == 4) /* Se o resto da divisao == 4, entao incrementa */
(index == 4)? index=0: ++index;
}
return 0;
}
Exercício 2: Página c420.html
Enunciado:
Escreva um programa utilizando o comando switch que leia uma string (use gets()) e substitua todos os espaços e tabulações ('\t') por caracteres de nova linha ('\n'). O loop deve encerrar quando encontrar o caracter de final de string '\0'.
Solução:
#include <stdio.h>
main()
{
int index;
char frase[30];
printf("\n\nEntre com a frase (max 30 caracteres): ");
gets(frase);
for (index =0 ; frase[index] != '\0'; index++)
{
switch(frase[index])
{
case '\t':
frase[index] = '\n';
break;
case ' ':
frase[index] = '\n';
break;
}
}
printf("\n\nNova frase: \n%s", frase);
return 0;
}
Exercício 3: Página c430.html
Enunciado:
Faça um programa que inverta uma string: leia a string com gets e armazea-a invertida em outra string. Use o comando for para varrer a string até o seu final.
Solução:
Neste exercício existem alguns detalhes interessantes. Primeiramente, é necessário determinar-se o tamanho da string. Isto é feito através de um primeiro for. Algumas pessoas não conseguiram chegar ao resultado por causa de um pequeno detalhe na 'linha em destaque'. Lembre-se sempre que se você tem um string de 10 posições, o seu índice pode variar de 0 a 9, e o '\0' vai estar na posição 9. Logo, você deve inverter a posição 8 com a 0, 7 com a 1, e assim por diante. É por isto que a expressão fica:
copia[i] = str[compstr-i-1]
Não podemos também deixar de colocar o '\0' no final da nova string.
#include <stdio.h>
#define MAX 31
void main()
{
char str[MAX], copia[MAX];
int i, compstr;
printf("\n\nEntre com uma string (max 30 caracteres): ");
gets(str);
/* Determina o comprimento da string atraves
de um for sem conteudo : ao final dele, compstr
contem a posicao do '\0' da string*/
for(compstr=0; str[compstr]; compstr++);
/* Inverte a string */
for(i=0; str[i]; i++)
{
copia[i] = str[compstr-i-1]; /* Linha em destaque */
}
copia[i] = '\0'; /* coloca um finalizador na string */
printf("\n\nString Invertida: %s\n", copia);
}
Exercício 4: Página c440.html
Enunciado:
Refaça o programa da página anterior. Use o comando while para fechar o loop.
Solução:
Como o comando while não tem o incremento próprio, precisamos fazê-lo dentro do seu loop. Outra observação importante é a necessidade de se inicializar a variável com i = 0.
Entao temos:
#include <stdio.h>
#define MAX 31
void main()
{
char str[MAX], copia[MAX];
int i = 0, compstr;
printf("\n\nEntre com uma palavra (max 30 caracteres): ");
gets(str);
/* Determina o comprimento da string atraves
de um for sem conteudo : ao final dele, compstr
contem a posicao do '\0' da string*/
for(compstr=0; str[compstr]; compstr++);
while (str[i] != '\0')
{
copia[i] = str[compstr-i-1]; /* Linha em destaque */
i++;
}
copia[i] = '\0';
printf("\n\nString Invertida: %s\n", copia);
}
Exercício 5: Página c450.html
Enunciado:
Refaça o exercício da página c410.html utilizando o laço do-while para controlar o fluxo.
Solução:
É preciso inicializar a variável contador, para garantir o resultado desejado. O incremento também tem que ser feito explicitamente.
#include <stdio.h>
main()
{
int index = 0, contador = 0;
char letras[5] = "Joao";
do
{
printf("\n%c",letras[index]);
if (( contador % 5 ) == 4) /* Se o resto da divisão == 4, entao incrementa */
(index == 4)? index=0: ++index;
contador ++;
} while (contador < 1000);
}
Exercício 6: Página c480.html
Enunciado:
Escreva um programa que peça ao usuário que digite três números inteiros, c
Explicação:
Obrigado por visitar. Nosso objetivo é fornecer as respostas mais precisas para todas as suas necessidades informativas. Volte em breve. Esperamos que isso tenha sido útil. Por favor, volte sempre que precisar de mais informações ou respostas às suas perguntas. Obrigado por confiar no Sistersinspirit.ca. Volte novamente para obter mais informações e respostas.