I need help with my distance formula. pow is apparently not in cmath or math.h. Since I am a beginner in C++, I need some help with the distance. I did the floaters and everything, well I used a book. Beginning Math and Physics for Game Programmers by Wendy Stahler. I just dont get how to make the distance work. can anyone help me??

Thank You for your help guys. It means a lot to me. =)

#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
#include <math.h>
#include <Windows.h>

using namespace std;

int main()
{
	int car1[3]; //Car 1 has 3 coordinates
	int car2[3]; //Car 2 has 3 coordinates

	// Car 1's ( X, Y, Z ) Coordinates
	cout << "What is the X Coordinate of Car 1? ";
	cin >> car1[0];
	cout << endl;
	cout << "What is the Y Coordinate of Car 1? ";
	cin >> car1[1];
	cout << endl;
	cout << "What is the Z Coordinate of Car 1? ";
	cin >> car1[2];
	cout << endl;
	cout << "The coordinates of Car 1 are..." << " ( " << car1[0] << "," << car1[1] << "," << car1[2] << " )" << endl;
	cout << endl;

	// Car 2's ( X, Y, Z ) Coordinates 
	cout << "What is the X Coordinate of Car 2? ";
	cin >> car2[0];
	cout << endl;
	cout << "What is the Y Coordinate of Car 2? ";
	cin >> car2[1];
	cout << endl;
	cout << "What is the Z Coordinate of Car 2? ";
	cin >> car2[2];
	cout << endl;
	cout << "The coordinates of Car 2 are..." << " ( " << car2[0] << "," << car2[1] << "," << car2[2] << " )" << endl;
	cout << endl;
	cout << "The Midpoint of Car's 1 and 2 is.... " << "( " << (car1[0] + car2[0]) /2 << ", " << (car1[1] + car2[1]) / 2 << ", " << (car1[2] + car2[2]) / 2 << " )" << endl; 
	cout << endl;

	float DistanceofTwoCars(float *car1, float *car2);
	{
		cout << "The Distance between Car 1 and Car 2 is... " << endl;
		cout << endl;
		cout << "D = " << (float)sqrt(pow(car2[0] - car1[0], 2) + pow(car2[1] - car1[1], 2) + pow(car2[2] - car1[2], 2)) << endl;
	};

	system("pause");
	return 0;
}

Looks fine to me. Use floats or doubles instead of integers since ints do not hold decimal places.

There are some serious problems with your code. Here is a fix. I'll let someone explain it, because I don't have enough patience right now.

#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>

using namespace std;

void DistanceofTwoCars(float *car1, float *car2){
	cout << "The Distance between Car 1 and Car 2 is... " << endl;
	cout << endl;
	cout << "D = " << (float)sqrt(pow(car2[0] - car1[0], 2.0f) + pow(car2[1] - car1[1], 2.0f) + pow(car2[2] - car1[2], 2.0f)) << endl;
}

int main()
{
	float car1[3]; //Car 1 has 3 coordinates
	float car2[3]; //Car 2 has 3 coordinates

	// Car 1's ( X, Y, Z ) Coordinates
	cout << "What is the X Coordinate of Car 1? ";
	cin >> car1[0];
	cout << endl;
	cout << "What is the Y Coordinate of Car 1? ";
	cin >> car1[1];
	cout << endl;
	cout << "What is the Z Coordinate of Car 1? ";
	cin >> car1[2];
	cout << endl;
	cout << "The coordinates of Car 1 are..." << " ( " << car1[0] << "," << car1[1] << "," << car1[2] << " )" << endl;
	cout << endl;

	// Car 2's ( X, Y, Z ) Coordinates 
	cout << "What is the X Coordinate of Car 2? ";
	cin >> car2[0];
	cout << endl;
	cout << "What is the Y Coordinate of Car 2? ";
	cin >> car2[1];
	cout << endl;
	cout << "What is the Z Coordinate of Car 2? ";
	cin >> car2[2];
	cout << endl;
	cout << "The coordinates of Car 2 are..." << " ( " << car2[0] << "," << car2[1] << "," << car2[2] << " )" << endl;
	cout << endl;
	cout << "The Midpoint of Car's 1 and 2 is.... " << "( " << (car1[0] + car2[0]) /2 << ", " << (car1[1] + car2[1]) / 2 << ", " << (car1[2] + car2[2]) / 2 << " )" << endl; 
	cout << endl;

        DistanceofTwoCars(car1,car2);

	return 0;
}

Edited 5 Years Ago by firstPerson: n/a

Comments
Thank you so much for your help. I really appreciate you helping me out.

What firstPerson did was to change 2 to 2.0f which ias a floating point number. This is important because there is no pow(int, int) defined in the math library. For a list of the ways you can use pow() check this out.

Edited 5 Years Ago by NathanOliver: n/a

What firstPerson did was to change 2 to 2.0f which ias a floating point number. This is important because there is no pow(int, int) defined in the math library. For a list of the ways you can use pow() check this out.

Not only that, but he had this inside main

float DistanceofTwoCars(float *car1, float *car2);
	{
		cout << "The Distance between Car 1 and Car 2 is... " << endl;
		cout << endl;
		cout << "D = " << (float)sqrt(pow(car2[0] - car1[0], 2) + pow(car2[1] - car1[1], 2) + pow(car2[2] - car1[2], 2)) << endl;
	};
This article has been dead for over six months. Start a new discussion instead.