Ir ao conteúdo

Posts recomendados

Postado
#include <stdlib.h>
#include  <stdio.h>
/*Dados dois vetores de inteiros pegue o maior elemento do primeiro vetor,
troque o o menor do segundo. Devolva os impares do segundo vetor
*/
	int MaiorVetor1(int v1[],int n1){
		int i,IndMaior=0;
		for(i=0;i<n1;i++){
			if(v1[i]>v1[IndMaior]){
				IndMaior=i;
			}
		}
		return IndMaior;
	}
	int MenorVetor2(int v2[],int n2){
		int i,IndMenor=0;
		for(i=0;i<n2;i++){
			if(v2[i]>v2[IndMenor]){
				IndMenor=i;
			}
		}
		return IndMenor;
	}
	void Troca(int v1[],int v2[],int ima ,int ime){
		int aux;
		aux=v1[ima];
		v1[ima]=v2[ime];
		v2[ime]=aux;
	}	
   int ExtraiImpar(int v2[],int n2,int vimpar[]){
	   int i,ni;
	   for(i=0;i<n2;i++){
		   if(v2[i]%2!=0){
			   vimpar[ni]=v2[i];
			   ni++;
            }
	   }
	   return ni;
   }
   	int Concatena(int vimpar[],int ni,int vres[]){
		int i,nvr=0;
		for(i=0;i<ni;i++){
			vres[nvr]=vimpar[i];
			nvr++;
		}
		while(i<ni){
    	vres[nvr] = vimpar[i];
		nvr++;	
		i++;
		}
		return nvr;
	}
   void printa_vetor(int v[], int n){
   int i;
   for(i = 0;i <n;i++) {
      printf("%d ",v[i]); 
 	 }
   printf("\n");
}
	/*int Concatena(int v1[],int v2[],int n1,int n2){
		int i,j,nvr=0,vres[nvr];
		for(i=0;i<n1;i++){
			vres[nvr]=v1[i];
			nvr++;
		}
		for(j=0;j<n2;j++){
			vres[nvr]=v2[j];
			nvr++;
			}
		for(nvr=0;nvr<(n1+n2);nvr++){
			printf(" %i",vres[nvr]);
		}
	}*/
   int main(){
   int n1,n2,i,ima,ime,*v1,*v2,*vres,*vimpar,ni,co;
   printf("Digite o tamanho do vetor 1:\n");
   scanf("%i",&n1);
   printf("Digite o tamanho do vetor 2:\n");
   scanf("%i",&n2);
	v1=(int*)malloc(n1*sizeof(int));
    v2=(int*)malloc(n2*sizeof(int));
    vimpar=(int*)malloc(n2*sizeof(int));
    vres=(int*)malloc(n2*sizeof(int));
   printf("Digite os elementos do vetor 1:\n");
   for(i=0;i<n1;i++){
	   scanf("%d",&v1[i]);
   }
   printf("Digite os elementos do vetor 2:\n");
   for(i=0;i<n2;i++){
	   scanf("%d",&v2[i]);
   }
   ima=MaiorVetor1(v1,n1);
   ime=MenorVetor2(v2,n2); 
   Troca(v1,v2,ima,ime);
   ni=ExtraiImpar(v2,n2,vimpar); 	
   Troca(v1,v2,ima,ime);
   co=Concatena(vimpar,ni,vres);
   printa_vetor(vimpar, ni);
   printa_vetor(vres,co);
   }

 

  • Curtir 1
Postado
5 horas atrás, Buzina Lopes disse:

Em anexo está uma imagem que mostra o tipo de erro que está dando...

erro.png

adicionado 30 minutos depois

@iHollyZinhO Ta ai o erro

O motivo pelo qual está dando esse número grande é porque você esqueceu de zerar a variável ni na função ExtraiImpar.

 

int ExtraiImpar(int v2[],int n2,int vimpar[])
{
    int i,ni = 0;
    for(i=0;i<n2;i++)
    {
        if(v2[i]%2!=0)
        {
            vimpar[ni]=v2[i];
            ni++;
        }
    }
    return ni;
}

 

  • Curtir 2

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