Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Buzina Lopes

C Problema relativo a vetor, erro desconhecido

Recommended Posts

#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);
   }

 

Editado por Simon Viegas
Ajustes tag CODE
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode mostrar onde está dando erro?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • 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

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    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

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário

    Entre para seguir isso  





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×