Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lauren Martinez

Vetor com atribuição 0 para números negativos.

Recommended Posts

A questão é: Leia um vetor de 5 posições e atribua valor 0 para todos os elementos negativos. Informe também quantos valores negativos foram encontrados.

O código que já fiz funciona até mostrar os elementos, mas não tô conseguindo contá-los. Poderiam me ajudar?

 

#include <stdio.h>
#include <stdlib.h>

int main(){
int vet[5], i, total;
for (i=0; i<5; i++){
printf("Digite o %d numero do vetor:", i+1);
scanf("%d", &vet);

if (vet<0)
vet=0;
}

for (i=0; i<5; i++){
printf ("Os valores do vetor sao: %d\n", vet);

}
for (i=0; i<5; i++){
if (vet<0)
total=0;
for (i=0; i<5; i++){
total= total+vet;
printf("\n\nNumeros negativos encontrados: %d", vet<0);
}
}
printf("\n\n");
system("pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você está atribuindo zero às posições que contem números negativos, p/ quê serve o if(vet<0)?

O exercício não pede p/ somar os números do array (total+vet).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, fiz essas alterações. Porém, sem o if, ele soma todos os números do vetor e eu quero somente os negativos, look.

#include <stdio.h>
#include <stdlib.h>

int main (){
int v[5], i, total=0;
for (i=0;i<5;i++){
printf("Digite os elementos do vetor: ");
scanf("%d", &v);
if (v<0)
v=0;
}
for (i=0; i<5; i++){
printf ("\nOs valores do vetor sao: %d", v);

}

for (i=0; i<5;i++){

total=total+1;

}


printf("\n\nO total de numeros negativos e: %d", total);


printf("\n\n");
system("pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não disse p/ tirar o if. Falei que o que você estava fazendo (somar os números ao invés de contar) estava errado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Olá!

 

 

Oi, Lauren Martinez sou iniciante em C mas já passei por algo similar ao seu problema . . .

 

 

- Todos os valores do vetor estão sendo contados no seu segundo código, porque você assim o especificou com:

for ( i = 0; i < 5; i++ )
   {
     total = total + 1;
   }

- A variável total, vai ser usada para contar apenas os números negativos que aparecerem no vetor, sendo assim você só precisa criar uma condição ( if ) que avalie se um determinado numero do vetor que está sendo percorrido pelo laço ( for ) é ou não negativo e que caso o seja, adicione +1 a variável total.

 

E tal condição já está especificada no seu código, você apenas não a está aproveitando, é exatamente o que a _Isis_ lhe apontou nos comentários dela, com atenção especial ao primeiro.

 

 

Se você está atribuindo zero às posições que contem números negativos, p/ quê serve o if ( vet [ i ] < 0 )?

 

 

- além disso é sempre bom você iniciar as suas variáveis com algum valor, pois, pelo menos aqui ao consertar o seu código, mesmo ele estando certo, um valor anormal, provavelmente lixo de memoria, foi exibido no printf() da variável total.

 

 

- e nos ifs é sempre bom você colocar chaves de abertura e fechamento deixando bastante claro onde começa e onde termina o código que deve ou não ser executado pelo if.

 

 

- tente evitar usar tanto quanto possível, funções que façam chamadas a componentes do sistema:

system ( "pause" );

essas chamadas podem reduzir a portabilidade do código, além de que podem causar erros, em tempo de execução difíceis de serem encontrados, caso apresente algum problema durante a sua chamada.

 

 

 

Espero Ter Ajudado ! ! !

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Jeraldo Setefuz
      Boa Tarde Senhores,
       
      Eu possuo uma dúvida que talvez seja simples para os senhores. Trabalho em uma industria e preciso desenvolver um sistema interno para controle de produção, nada muito complexo. Como, fazer pedidos, controlar expedição, apontamentos de produção e etc.
       
      Então minha dúvida é o seguinte:
      Existe alguma forma de desenvolver um sistema em java ou php (que sao as LP que entendo) que não precise ficar desenvolvendo tudo do inicio. Por exemplo que já tenha pronto os formulários as questões de segurança. Que eu não tenha que ficar perdendo muito tempo com isso?
       
      Pois se não irei levar muito tempo para desenvolver tudo e controlar cada ponto do sistema. Não sei se fui claro.
       
      Gostaria desenvolver em java, pois ficaria mais fácil para implementar pdf e relatórios depois.
       
      Fico no aguardo pela ajuda.
       
      Obrigado a todos
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.