Ir ao conteúdo
  • Cadastre-se

Posts recomendados

Postado

Fala, galera. Tô meio emperrado aqui pra resolver um código, pois to enfejurrado na linguagem C. Será que vocês conseguem me ajudar?

1. Escreva uma função float diferencaMaxima(float x1[N], float x2[N]), onde essa função deve receber 2 vetores de mesmo tamanho e retornar a diferença entre seus elementos.

Eu tentei declarando uma varíavel para ir armazenando a maior diferença enquanto varro o vetor dentro de um for, mas não rodou. 

Postado

@Lucca Rodrigues vou enviar.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 3

float diferencaMaxima(float x1[N], float x2 [N]){
	int dmax=0;
	int d;
	int x,y;
	int i;
	
		for(i=0;i<N;i++){
			if (x1[i] == x2[i]){
				d = 0;
			}
			if (x1[i] < x2[i]){
				d = x2[i] - x1[i];			
			}else{
				x= -x1[i];
				y= -x2[i];
				d = x - y;
				
			}
			if (d > dmax){
				dmax = d;
			}
		}
		printf("\n A distacia maxima entre vetores pareados eh: %d",dmax);
		
		return 0;
}

 

Postado

Talvez você não precise de tantos blocos if. Apenas calcule a diferença absoluta com a função fabs, por exemplo,

 

const float diff = fabs(A[i] - B[i]);

if (diff > max) max = diff;

 

A função fabs está na biblioteca math.h.

 

Mas talvez haja um erro no seguinte: você está comparando sempre os mesmo elementos de A e B, ou seja o mesmo i pra ambos. Talvez você precise fixar o índice de A, e usar um novo índice para escanear B. Ou seja, pra cada elemento de A, testa-se contra todos os elementos de B. Digamos que j seja o índice de B, então:

 

const float diff = fabs(A[i] - B[j]);

 

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