Alguém me ajuda a terminar meu programa

Sou programador iniciante e preciso fazer um programa por hobby(Ou seja nada serio para empresas ou coisa do tipo),quero fazer para aprender a programar,o programa tem que armazenar 5 valores diferentes digitados pelo usuário e dizer no printf do C qual é o maior e menor número,abaixo está o que eu já fiz:

#include <stdio.h>

int main (){

int valor[5];
int conta;

for (conta=0;conta<5;conta++){//usuário digita 5 numeros
printf("Insira um dado:\n");
scanf("%d",&valor[conta]);
}

printf("Dados inseridos:\n");//informa os 5 dados inseridos
for (conta=0;conta<5;conta++){
printf("%d",valor[conta]);


}

Sou um programador iniciante com dificuldade para entender devido a síndrome de noonan,ou seja eu demoro para cair a ficha,escolhi a linguagem C por ser uma linguagem mais complexa para se aprender,dizem que se eu aprender linguagem C,terei mais facilidade em aprender outras linguagens como Python por exemplo ou alguma linguagem baseada em C.

Alguém pode me ajudar a terminar o programa? ou devo fazer isso por conta própria? o que é melhor para mim que sou iniciante em programação e tenho dificuldade para entender e dificuldade de aprendizado.

O que vocês acham?

Talvez seja interessante você fazer um curso de lógica de programação antes de aprender uma linguagem qualquer.

Pergunta: Algum motivo especial para criar mais de uma conta de usuário no GUJ?

Nehum motivo especial para criar conta no guj,é que as vezes eu esqueço a senha,mas se quiser deletar as outras contas pode deletar,fiz curso de logica em programação com o pascalzinho,me lembro que a gente mexia no programa turbo pascal 7,e depois fomos estudar o Delphi 7 da borland.

Bacana, então tenta escrever o programa para ler 5 números e dizer qual é o maior e qual é o menor.
Tenta escrever em portugol mesmo, não em C, acredito que seu problema não é a linguagem e sim a lógica.

Eu posso fazer o programa para dizer qual é o maior e qual é o menor,trabalhando com IF e Else,mas vai ficar muito grande o programa,e o outro jeito é fazer com vetores,estou certo?

Não vai ficar grande.

Basta fazer um loop simples, e para cada número, vc compara com o maior já encontrado (o mesmo para o menor). São dois if’s apenas.

seria if maiorvalor e if menorvalor? Eu não tenho noção nem no que faço em logica de programação,pois eu demoro para cair a ficha,pois tenho dificuldade para entender,a ficha ainda não caiu,alguém diz se estou no caminho certo?

É por aí, pra cada elemento vc faz if (elemento > maior) maior = elemento (e o mesmo para o menor, claro que trocando o operador por <). Vc chegou a pesquisar? Sério, no Google vc acha esse algoritmo rapidinho. Se vc não faz ideia de como resolver, talvez vendo a solução te ajude a entender melhor.

Agora, sendo bem sincero, se vc não consegue nem imaginar como fazer, é melhor estudar primeiro lógica e algoritmos básicos, como já sugerido.

Estou estudando no YouTube linguagem C,o nome do Professor é Pietro Martins de Oliveira,não fiz todas as aulas do curso ainda,tá ok,estou aprendendo aos poucos.

Veja os seguintes números:
123 - 456 - 7 - 89 - 101

Agora sem programar:

  • Consegue me dizer qual é o menor?
    Se sim, como concluiu isso?

  • Consegue me dizer qual é o maior?
    Se sim, como concluiu isso?

O menor é o 7 e o maior é o 456,conclui porque sei contar,se não consigo contar não tem como achar o menor e o maior ou vice-versa.

Vc tem que pensar em como faria um programa para determinar o maior e o menor. No caso, poderia ser:

  • ler o primeiro: 123 → esse é o maior e o menor encontrado até o momento
  • próximo: 456 → é maior que 123, então o maior até o momento é 456, mas não é menor que 123 então o menor até o momento é 123
  • próximo: 7 → não é maior que 456, então o maior até o momento é 456, e é menor que 123 então o menor até o momento é 7
  • próximo: 89 → não é maior que 456, então o maior até o momento é 456, e não é menor que 7 então o menor até o momento é 7
  • próximo: 101 → não é maior que 456, então o maior até o momento é 456, e não é menor que 7 então o menor até o momento é 7

Resultado: o menor é 7 e o maior é 456

Agora pense em como vc traduziria isso pra código. É basicamente um loop com duas comparações.


De novo: se vc não conseguiu imaginar a solução desta forma, é porque ainda não está conseguindo pensar de forma algorítmica. Daí insisto que deveria voltar alguns passos e focar nos estudos de lógica e algoritmos básicos.

1 curtida

[…] me ajudar a terminar o programa?
— Suponho que sim, mas para expressar uma solução, precisarás antes; compreender/entender os operadores relacionais, especificamente maior que (>) e/ou menor que (<), também (o obvio) operador da atribuição (=), e por último, a/uma declaração/instrução condicional, neste caso if-else.

[…] fazer isso por conta própria?
— Sim, independente do tempo necessário: pense, escreva e repita até expressar tua solução!
As linguagens de programação são apontadas por muito como sendo uma maneira para expressar uma solução no sistema -ou seja- a solução independe duma linguagem.

Se é verdade que uma solução independe duma linguagem, então uma solução existe, inicialmente, no pensamento.

*** Logo, sugiro que essa solução no pensamento seja externada por meio de algoritmo, e depois, passa-se à linguagem C: existem três métodos principais para a construção de algoritmos; descrição narrativa, fluxograma e pseudocódigo. Tenho minha predileção no primeiro dos três métodos.

[…] sou iniciante em programação e tenho dificuldade para entender e dificuldade de aprendizado.
— Dizem que uma solução para esse perfil é a repetição com intervalos em dias: pense a compreensão sendo semelhante uma trilha no meio da grama crivada por muitos passos no mesmo lugar. Assim que suponho que vossa aprendizagem.

— Passe pelo mesmo lugar (repita com intervalos), varias-varias-vezes, e talvez, a cada circuito, um novo dado será compreendido.

MB▐

Vou deixar para o meu sobrinho fazer para mim,tá ok.É que eu não entendo mesmo.

Se você não praticar, não vai aprender.

Recomendo você aprender lógica de programação e algoritmos sem se preocupar com linguagem.

É evidente que sua dificuldade não é a linguagem e sim entender os passos necessários para resolver o problema.

Tem razão,a minha dificuldade é dar os passos para fazer o programa e não a linguagem,tenho que fazer variaveis maior e menor e trabalhar com IF neh?

Terminei o programa,a logica está certa,mas o resultado deu numero errado no maior e menor valor veja:

Porque o resultado do maior ou do menor as vezes dá resultado errado,como faço para corrigir o problema?

Esse programa não está rodando no codeblocks:

#include <stdio.h>

int main() {
  int valores[5], maior, menor;

  // Inicializa as variáveis
  maior = -99999999;
  menor = 99999999;

  // Recebe os valores do usuário
  for (int i = 0; i < 5; i++) {
    printf("Digite o %dº valor: ", i + 1);
    scanf("%d", &valores[i]);

    // Atualiza as variáveis de maior e menor valor
    if (valores[i] > maior) {
      maior = valores[i];
    } else if (valores[i] < menor) {
      menor = valores[i];
    }
  }

  // Imprime o maior e menor valor
  printf("O maior valor é %d.\n", maior);
  printf("O menor valor é %d.\n", menor);

  return 0;
}

— Olá, boa-noite!
Aparentemente a expressão é quase essa, porém, para mim, faltou 1 detalhe.

O que acontece na prática?
Escolhemos um número, a referência, assumimos que essa primeira escolha é o maior e menor número, logicamente, porque imaginamos uma lista unitária (que há 1 item). Logo depois notamos haver mais números:

Exemplo:
[1 2 3 4 5 6 7 8 9]

a referência é número 1, então inicialmente o maior e o menor são iguais a 1, em seguida

Repete de 2 até 9: [2 3 4 5 6 7 8 9]

Pergunta: maior < 2? Sim, então maior será 2
Pergunta: menor > 2? Sim, então menor será 2

— Talvez, isso resolve.

Desculpa,mas não entendi o que tenho que fazer?

Fiz uma narração das etapas mentais que te levou a conclusão.
Entendeu?

Para mim, sua mente não contou nada, ela comparou a partir de valores que já existem.

  1. Sua mente definiu uma lista de valores.
  2. Escolheu um valor INICIAL QUE HÁ NA LISTA.
  3. Comparou ele com todos os outros, e cada vez que número foi menor ou maior atualizou as variáveis na mente de acordo.

Se o número atual é menor, então guarda no menor.
Se o número atual é maior, então guada no maior.

É só isso!