Ir ao conteúdo

Posts recomendados

Postado

Oi pessoal, não sei porque meu codigo não está retornando o resultado esperado. Alguém pode me ajudar ?

segue abaixo o enunciado da questão e o meu codigo.

Sejam x e y dois vetores de inteiros ordenados crescentemente, respectivamente.
Escreva uma função recursiva para encontrar o k-ésimo elemento do vetor xy. O vetor
xy é a concatenação, ordenada, dos vetores x e y. O protótipo da função é:
int kEsimo(int nx, int ny, int *x, int *y, int k);
Por exemplo, dado o vetor x = (-2, 0, 1, 1, 5) e y = (-4, -3, -1, 1, 3, 6), o 9º elemento do
vetor xy será o 5. Observe que o vetor xy = (-4, -3, -2, -1, 0, 1, 1, 1, 3, 5, 6) não precisa
ser criado.

#include <stdio.h>


int kEsimo();
int main(){
	int k,x[]={-2, 0, 1, 1, 5}, y[]={-4, -3, -1, 1, 3, 6};
	
	printf("Digite a posicao do k-esimo elemento: \n");
	scanf("%d",&k);
	printf("%dº elemento do vetor xy será o %d",k,kEsimo(5,6,&x,&y,k));
	return 0;
}

int kEsimo(int nx, int ny, int *x, int *y, int k){
	int n = nx + ny;
	int i=0,j=0;
	
	//printf("%d\n",x[3]);
	if(n==0) return 0;
	
	if(x[i]>y[j]){
		if(i==k)
			return x[i];
			i++;
	}else
	{
		if(j==k)
			return y[j];
			j++;
	}
	kEsimo(i,j,&x,&y,n-1);
}

 

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!