Portugol

C

Está dando algum erro quando calcula o menor e o maior aí a média tá dando errado.

programa

 funcao inicio()
 {
  real n, menor=0, maior=0,  media
  caracter s

          escreva ("Digite 'S' para começar :")
  leia(s)

  faca{
   escreva("Número:")
   leia(n)

          
  se(n<=maior){
  maior = menor
  menor = n 
   }se(n>=menor){ 
   menor = maior
   maior = n
    
   }
   media = (maior + menor)/2
   escreva ("Deseja continuar? 'Y' se sim e 'N' se não:")
   leia (s)
  }enquanto(s== 'y' ou s=='Y')
  
  escreva("Número maior: ", maior," - ", "Número menor: ", menor)
  escreva("\n\nMédia entre o menor e o maior: ", media)
 }
}

Foto de Andrielli B.
Andrielli perguntou há 3 anos

Sabe a resposta?

Ganhe 10 pts por resposta de qualidade
Responder dúvida
2 respostas
0
votos
Nenhum usuário votou nessa resposta como útil.
Professora Jéssica O.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 3 anos

Boa tarde, Andrielli.

Achei sua dúvida muito interessante. Porém aqui tiramos as dúvidas mais especificas. Essa necessita mais tempo. Sugiro que você coloque na parte de tarefas, fica melhor para tirar todas as duvidas e exemplificar. Abraços!!!

Envie uma dúvida gratuitamente

Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.

0
votos
Nenhum usuário votou nessa resposta como útil.
Professor Vitor S.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 3 anos

Olá, tudo bem?

Essa dúvida é um pouco complicada de explicar por aqui porque existem diversos pontos no código que interferem no funcionamento.
Porém, o principal é a lógica para definir qual valor vai ser o menor e o maior.

Neste trecho, está misturada a lógica relacionada ao menor e ao maior valor:

se(n<=maior){
  maior = menor
  menor = n 
 }se(n>=menor){ 
   menor = maior
   maior = n  
   }

Minha sugestão é separar as regras de maior e menor:

Exemplo: se o valor digitado (n) for maior que o valor da variável maior, a variável maior recebe o valor digitado (n);

se(n > maior){
  maior = n
}

e se o valor digitado (n) for menor que o valor da variável menor, a variável menor recebe o valor digitado (n);

se(n < menor){
  menor = n
}

Colocando desta forma fica mais simples, porém ainda não vai funcionar como esperado porque a variável menor é iniciada com 0, então de acordo com a lógica que mandei, a variavel menor vai continuar como 0 até o usuário digitar um número negativo.
Para que isso não ocorra, você pode alterar o programa para que quando o usuário digitar o primeiro número, o valor digitado seja colocado tanto na variável menor, quanto na variável maior:

se(primeiroValorDigitado){
  maior = n
  menor = n
  primeiroValorDigitado = falso
}

Professores particulares de C

+ Ver todos
Encontre professor particular para te ajudar nos estudos
R$ 70 / h
Jéssica O.
Recife / PE
Jéssica O.
5,0 (3 avaliações)
Tarefas resolvidas 8 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
Graduação: Educação Física - Licenciatura (UFRPE SEDE)
Professora de educação física com experiência em ensino didático para grupos especiais e experiência com estudantes de direito
R$ 60 / h
César D.
Mogi Guaçu / SP
César D.
4,9 (815 avaliações)
Horas de aulas particulares ministradas 87 horas de aula
Tarefas resolvidas 1.001 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
C - string C - Geral C - matriz
Graduação: Matemática Aplicada e Computacional (Universidade Estadual de Campinas (UNICAMP))
Faça aulas de matemática, computação e programação em c, c++, java e python.
R$ 75 / h
Danilo L.
Campina Grande / PB
Danilo L.
4,9 (18 avaliações)
Horas de aulas particulares ministradas 28 horas de aula
Tarefas resolvidas 1 tarefa resolvida
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
C - string C - Listas Duplamente Encadeadas C - graduação
Graduação: Engenharia da Computação (IFPB - Campus Campina Grande )
Desenvolvedor web full stack. Acompanhamento particular em python/django, c/c++, java, selenium e js!