I am trying to write my first program in C++. I am receiving a code that I am not sure how to fix. I would appreciate the help! The code that I am receiving is : "error: expected primary-expression before "else".

Code:

// Math Program - provides quick calculations to basic math problems
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
// Function for factorial
long factorial (long a)
{
if (a > 0)
return (a * factorial (a-1));
else
return (1);
}
int main()
{
// Header to program
cout << "******************************" << endl;
cout << "******** Math Program ********" << endl;
cout << "******************************" << endl << endl;
cout << "Please choose from the following options" << endl;
cout << "1-Factorial" << endl;
cout << "2-Slope of a Line" << endl;
cout << endl << "Selection: ";
int choice;
cin >> choice;
// Decide which function to run
long number;
if (choice == 1)
{
// Enter a number and call factorial() to provide answer
cout << endl << "Please type a number: ";
cin >> number;
if(number < 0)
{
cout << "Enter a positive integer!..." << endl <<endl;
}
else
{
cout << number << "! = " << factorial (number) << endl << endl;
}
}
long x1,x2,y1,y2;
long slope;
else if (choice == 2)
// Enter coordinates and calculuates slope to provide answer
{
cout << endl << "Please enter the first set of coordinates: ";
cin >> x1;
cin >> y1;
cout << endl << "Now enter the second set of coordinates: ";
cin >> x2;
cin >> y2;
slope = ((y2-y1)/(x2-x1));
cout << "The slope of the line is:" << slope;
}
// Wait for user to respond to quit program
system ("pause");
return 0;

I am getting the error after the else( choice ==2) portion