Ir ao conteúdo

Posts recomendados

Postado

Olá pessoal, alguém poderia me dar uma mão para resolver este exercício:
Preciso de um código que leia 6 valores, depois imprima quantos desses valores forem positivos e na próxima linha imprima a média dos valores positivos (desconsiderando os negativos caso o usuário digite), preciso muito de uma ajuda com esse código galera, estou no começo do curso em C e até agora aprendi os comandos if, else if, else e switch, preciso de uma ideia de como prosseguir com o código,
Obrigado pela atenção de todos!

(se não ficou claro o que preciso que o programa faça, por favor me pergunte que tento explicar melhor)

Postado

Boa tarde, segue uma série de instruções para montar seu código. Uma dica antes: é sempre bom separar as etapas que estão na questão, facilita a montagem da logica do código. Segue:

 

1 - Entrada de 6 valores 

 Nessa etapa você já deve ter um vetor de [6] (0...5) para armazenar os valores. 

 Use um loop for para facilitar a estrutura do código, e otimizar. Caso não puder, tente organizar a entrada.

 Depois de declarar o vetor, você mostra uma mensagem pedindo o numero e usa o scanf(const char *,...)  para armazenar no vetor.

Se não puder usar for:

 

scanf...

vetor[0] = numero;

scanf...

vetor[1] = numero;

...

 

2 - Imprimir valores positivos

Nessa etapa você precisa usar uma série de if (melhor usar for e if), para verificar se o índice x do vetor(vetor[x])

possui um valor positivo, sendo que o só o if verifica isso, e no caso de ser negativo, você usa o printf para mostrar o numero.


if(vetor[0] > 0){
 //positivo - mostrar numero
}
if(vetor[1] > 0){
 //positivo - mostrar numero
}
//e assim vai...

2 - Imprimir média de valores positivos

Nessa etapa você precisa usar uma série de if (melhor usar for e if), para verificar se o índice x do vetor(vetor[x])

possui um valor positivo, você usa uma variável para somar todos valores positivos, e no final você cria a média, subtraindo pelo numerador 6.

Ex:


//Media de 2 numeros positivos
int mediaFinal = 0, vetor[2];

if(vetor[0] > 0){
 mediaFinal+=vetor[0];
}
if(vetor[1] > 0){
 mediaFinal+=vetor[1];
}
mediaFinal=mediaFinal/2;

P.S: Como você não mandou nenhum código, nem nada, não posso lhe fornecer nenhum código, portanto, posso lhe oferecer um começo.

  • Curtir 1
Postado

Boa noite amigo, obrigado pela resposta!

Na verdade o que a professora do curso pediu foi que eu criasse o algoritmo usando apenas switch,cases,if pois ainda nao chegamos em vetores, vou procurar entender o que quis dizer e como funcionam os vetores, obrigado!

Postado

Não é necessário armazenar os valores num vetor, você pode fazer o programa ir somando numa única variável todos os valores que forem positivos (usando if pra checar se é positivo) assim que o usuário digitar um valor, e também já incrementa +1 em outra variável que sirva como um contador, quando o número for positivo. Aí no final pra calcular a média basta dividir o resultado final da soma dos números positivos pela quantidade de números positivos.

  • Curtir 1
Postado

O que tenho é o seguinte 

#include <stdio.h>
main()
{
float vetor[6],contador;
printf ("Informe 6 valores\n");

scanf("%f",&vetor[0]);
if (vetor[0]>0){contador=+1;
printf ("%f",contador);}
else if (vetor[0]<0){contador=-1;
printf ("%f",contador);}

scanf("%f",&vetor[1]);
if (vetor[1]>0){contador=+1;
printf ("%f",contador);}
else if (vetor[0]<0){contador=-1;
printf ("%f",contador);}

//scanf("%f",&vetor[2]);
//scanf("%f",&vetor[3]);
//scanf("%f",&vetor[4]);
//scanf("%f",&vetor[5]);
}

Precisava que a variavel "contador" somasse 1 (+1) quando o usuario digita um numero positivo e diminuísse (-1) do valor ja salvo na variavel, compreensível?

 

PS.: Estou usando vetor com finalidade apenas de criar as variáveis, ainda não aprendi a operar com eles

Postado

Vou demonstrar a minha ideia, veja:

#include <stdio.h>
int main()
{
  float numero, soma, contador, media;
  
  contador = 0; // O contador precisa ser inicializado com valor 0
  soma = 0; // E a mesma coisa para a soma
  
  printf ("Informe 6 valores\n");
  
  scanf("%f",&numero);
  if (numero > 0){ //se o número for positivo:
    contador = contador + 1; //soma 1 ao valor atual do contador
    soma = soma + numero; //soma o número ao valor atual da soma
  }
  
  /*Agora faz isso mais 5 vezes e depois calcula a média e imprime.*/
  
  return 0;
}
  • Curtir 1
Postado
17 minutos atrás, isrnick disse:

Vou demonstrar a minha ideia, veja:


#include <stdio.h>
int main()
{
  float numero, soma, contador, media;
  
  contador = 0; // O contador precisa ser inicializado com valor 0
  soma = 0; // E a mesma coisa para a soma
  
  printf ("Informe 6 valores\n");
  
  scanf("%f",&numero);
  if (numero > 0){ //se o número for positivo:
    contador = contador + 1; //soma 1 ao valor atual do contador
    soma = soma + numero; //soma o número ao valor atual da soma
  }
  
  /*Agora faz isso mais 5 vezes e depois calcula a média e imprime.*/
  
  return 0;
}

 

Cara, muito obrigado mesmo! Agora entendi perfeitamente, obrigado!

  • Curtir 1
Postado

Muito bom @isrnick , uma ideia, é que nas questões é preciso mostrar os valores positivos, você poderia colocar um printf nesse segmento:


  if (numero > 0){ 
    contador = contador + 1; 
    soma = soma + numero; 
    printf("Numero Positivo: %d\n", numero); //aqui
  }

 

@Rafael Nicolai    Você está usando contador=+1; e contador=-1; de forma errada, o operador deve vir antes do simbolo =,

se não você esta adicionando o valor 1 ao contador ou o valor -1;

Use:

contador+=1;//Soma o valor do contador com 1

contador-=1;//Subtraí o valor do contador com 1

Mas você esta no caminho certo!

 

Como o @isrnick disse, você não precisa usar vetor, e sim juntar todas etapas em 1, e usar apenas uma variavel(float no caso).

  • Curtir 1
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!