Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, minha dúvida é simples: estou tentando fazer uma troca de endereços entre duas variáveis em uma função por passagem de referência, mas na hora de mostrar na função principal, os valores continuam inalterados. Alguém saberia me dizer o porque e onde está meu erro? O código exemplifica melhor o que estou tentando fazer. A troca está sendo feita perfeitamente pela função.
#include <stdio.h>
#include <math.h>
void raizes (float a, float b, float c, float x1, float x2){
double delta;
float *aux;
delta = b * b - 4 * a * c;
*x1 = -b + sqrt(delta) / 2 * a;
*x2 = -b - sqrt(delta) / 2 * a;
if (*x2 < *x1){
aux = x1;
x1 = x2;
x2 = aux;
}
}
int main(){
float a, b, c, x1, x2;
printf ("Digite o valor de a: ");
scanf ("%f",&a);
printf ("Digite o valor de b: ");
scanf ("%f",&B);
printf ("Digite o valor de c: ");
scanf ("%f",&c);
raizes (a, b, c, &x1, &x2);
printf ("\nValor de x1: %f", x1);
printf ("\nValor de x2: %f\n", x2);
return 0;
}Carregando comentários...