Ok the program is done but when it runs and u start give what it asks

Example:

How many athletes; 2 (we give 2)

***Give Athletes Data:

Lastname: Messi

First Jump: 5.6

etc....

Instead of the above it asks for:

How many athletes; 2 (we give 2)

***Give Athletes Data:

Lastname: First Jump: 5.6

etc....

IT SKIPS the first lastname but it asks u for the second properly

What the heck is that ^^

Code:

#include <cstdlib>
#include <iostream>
using namespace std;
struct athlete
{
char lastname[40];
float p1,p2,p3,p4;
};
void show_athletes(athlete A[], int MAX_ATHLETES);
int main(int argc, char *argv[]){
int MAX_ATHLETES;
cout << "How many Athletes; ";
cin >> MAX_ATHLETES;
athlete* A = new athlete[MAX_ATHLETES];
int i;
for(i=0;i<MAX_ATHLETES;i++){
printf("\n*** Give Athletes Data: \n");
printf("Lastname: ");
gets(A[i].lastname);
do{
printf("First Jump: ");
scanf("%f",&A[i].p1);getchar();
}while(A[i].p1<0);
do{
printf("Second Jump: ");
scanf("%f",&A[i].p2);getchar();
}while(A[i].p2<0);
do{
printf("Third Jump: ");
scanf("%f",&A[i].p3);getchar();
}while(A[i].p3<0);
do{
printf("Fourth Jump: ");
scanf("%f",&A[i].p4);getchar();
}while(A[i].p4<0);
}
printf("Press Enter to Show Athletes with Jumps longer than 7.50");
getchar();
show_athletes(A,MAX_ATHLETES);
system("PAUSE");
return EXIT_SUCCESS;
}
void show_athletes(athlete A[],int MAX_ATHLETES){
int i;
for(i=0;i<MAX_ATHLETES; i++){
if (A[i].p1>7.5 || A[i].p2>7.5 || A[i].p3>7.5 || A[i].p4>7.5) {
printf("The Athlete:%40s Jumped Longer than 7.50\n",A[i].lastname);
printf("Ta almata tou einai:\n%f\n%f\n%f\n%f\n",A[i].p1,A[i].p2,A[i].p3,A[i].p4); }
}
}