Em linguagem de programação podemos contar com funções prontas que podem ajudar o analista de funções triviais simples, mas muito úteis se utilizadas de modo correto.
Considere o código em linguagem C abaixo:
#include
#include
int main(){
char Str[1000];
int i;
printf("Digite uma palavra: ");
scanf("%s", Str);
int tamanho=strlen(Str);
for (i = 0; Str[i] != '0'; ++i){
printf("o tamanho é %d", i);
return 0;
}
}
A partir de sua análise assinale a resposta correta:
Alternativas
Alternativa 1:
Ao executar o código o laço for entre em loop infinito.
Alternativa 2:
Quando o usuário digita uma palavra o código soma a quantidade de caracteres e retorna zero.
Alternativa 3:
O resultado do tamanho da palavra sempre será zero, por que o código esta com erro lógico no loop
Alternativa 4:
Nesse programa o usuário digita uma palavra e então o comprimento de Str é calculado usando loop e strlen().
Alternativa 5:
Esse algoritmo ao final armazena a quantidade de palavras digitadas pelo usuário e mostra a quantidade exata.
Respostas
respondido por:
11
Resposta:
Alternativa 3:
O resultado do tamanho da palavra sempre será zero, por que o código esta com erro lógico no loop
Explicação:
for (i = 0; Str[i] != '0'; ++i)
{
printf("o tamanho é %d", i);
return 0;
}
O loop for deste exercicio contem um erro lógico, onde ele define:
Str[i] != '0'
Nesse caso, quando o texto digitado for 0 o programa encerra diretamente, e caso seja digitado qualquer outra informação, a função print vai emprimir no terminal o valor de I, que foi definido como 0 "for (i = 0; ".
Para ser uma soma, o loop for precisaria de uma variável auxiliar e interagir pela lista de caracteres Str, somando +1 a cada novo ..
Indo além, se você compilar esse código e inserir uma palavra, o terminal sempre vai imprimir "Digite uma palavra: banana o tamanho é 0"
respondido por:
1
A resposta correta é a alternativa 1, ao executar o código, o laço for será um loop infinito.
Vamos analisar o código:
- char Str[1000]; declarado um vetor do tipo string, de tamanho 1000.
- int i; declarada uma variável inteira, chamada i
- printf("Digite uma palavra: "); Imprime ao usuário, para que este digite uma palavra.
- scanf("%s", Str); Lê a palavra escrita e guarda no vetor Str.
- int tamanho=strlen(Str); Cria uma variável inteira tamanho, e guarda dentro dela o resultado de STRLEN, função que irá retornar o número de caracteres que há em Str.
- for (i = 0; Str[i] != '0'; ++i){ O erro está no fato de que, o loop irá rodar até que Str[i] seja não igual (!=) a 0, porém, um índice não específicado dentro de um vetor pode ter qualquer valor, não necessariamente o 0, assim o loop será infinito.
- Para corrigir o programa, o loop deveria ser executado até que i = tamanho, uma vez que a medida da palavra já havia sido solicitada.
Aprenda mais sobre variáveis do tipo String aqui: https://brainly.com.br/tarefa/26433044
Anexos:
Perguntas similares
3 anos atrás
3 anos atrás
3 anos atrás
5 anos atrás
5 anos atrás
5 anos atrás
7 anos atrás
7 anos atrás
Alternativa 2:
Quando o usuário digita uma palavra o código soma a quantidade de caracteres e retorna zero.
E é exatamente o que acontece. Antes do for, o código soma a quantidade de caracteres. Ao entrar no for, ele sempre vai retornar 0