Ir ao conteúdo

Posts recomendados

Postado

Problema: digite 8 numeros e armazene-os em dois vetores, um par positivos e outro para negativos.Um v[] para armazenar qualquer numero e depois trocar seus valores por atribuicao, v1[] pra positivos e v2[] negativos. Estou com dois problemas: em "descartar o printf de um dos vetores caso todos os 8 numeros sejam totalmente positivos ou negativos e quando coloco negativos aparecem numeros aleatorios

 

#include <stdio.h>
#include <stdlib.h>
int main(){
int v1[8], v2[8], i, x, v[8], aux;

for(i =0; i<8; i++){
    printf("valores");
    scanf("%d", &v[i]);}
for(i=0; i<8; i++){
    if(v[i]>=1){
        v1[i]=v[i];}
    else if(v[i]<=0){
        v2[i]=v[i];}
}
for(i=0; i<8; i++){
    for(x=i; x<8; x++){
        if(v1[i]>v1[x]){
            aux=v1[i];
            v1[i]=v1[x];
            v1[x]=aux;
        }
    }
}for(i=0; i<8; i++){
    for(x=i; x<8; x++){
        if(v2[i]<v2[x]){
            aux=v2[i];
            v2[i]=v2[x];
            v2[x]=aux;
        }
    }
}for(i=0; i<8; i++){
    printf("\nvalores positivos %d", v1[i]);}
for(i=0; i<8; i++){
    printf("\nvalores negativos %d", v2[i]);}

}

 

Postado

Os números aleatórios são "lixo" da memória. você tem que definir um valor padrão para as variáveis a fim de evitar isso:

int v1[8] = {0,0,0,0,0,0,0,0};
int v2[8] = {0,0,0,0,0,0,0,0};
int v[8]  = {0,0,0,0,0,0,0,0};
//essas de baixo não precisa
int i, x, aux;

Em relação a segunda parte, crie dois contadores (cont_pos e cont_neg), um para os número positivos e outro para os negativos e incremente-os de acordo com as entradas do usuário e na hora de imprimir faça:

for(i=0; i<cont_pos; i++){
    printf("\nvalores positivos %d", v1[i]);}
for(i=0; i<cont_neg; i++){
    printf("\nvalores negativos %d", v2[i]);}

Perceba no código acima que os laços só serão executados caso cont_pos e cont_neg sejam maiores que zero.

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!