I've decided to dive into the world of C++, and decided as my first attempt i would try making a simple tic tac toe/noughts and crosses game. Basic i know, but im just starting =(

The game works fine except one bug that I just can't find; it draws in a cross or circle in the bottom right for no apparent reason in the first 2 turns, and then from then on it treats it as though the square doesn't exist.

I would be really grateful if someone could look through the code and find out where the problem is, and maybe while your at it to suggest ways of making my code more efficient as im sure there are simpler functions/ways of doing things that i don't know about.

Anyway thanks for any help you can give me, heres the code:

Code:
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
int loopcountrow;
int loopcountcol;
int loopcount;
int board[9];
int move;
int win=0;
int endc;
int player=1;
int playerc;
int i;
//////////////////////////////////////////////
/////////////////                  //////////////
/////////////////   -=0 X=1 O=2    ////////////////
/////////////////                  /////////////////
/////////////////////////////////////////////////////
void drawboard()
{
     cout << endl;
         for (loopcountrow = 0; loopcountrow < 3; loopcountrow = loopcountrow + 1)
        {
                      
         for (loopcountcol = 1; loopcountcol < 4; loopcountcol = loopcountcol + 1)
             {
             loopcount = (loopcountrow*3)+loopcountcol;
           
             switch(board[loopcount])
{
case 0:
     cout << "-";
     break;
case 1:
cout << "X";
break;
case 2:
cout << "O";
break;
default:
        cout << "-";
}
             }
         cout << endl;
         
         }
}
//////////////////////////////////////////////////////////////////////////
void inputmove1()
{
     cout << endl;
     cout << "Player 1" << endl;
     cout << "Where would you like to move? >> ";
     cin >> move;
          if (move>9){
                      cout << "Invalid Move" << endl;
     inputmove1();
     }
     switch(board[move]){
                         case 0:
                    board[move]=1;  
                    player=2;                   
     break;
     case 1:
     cout << "Invalid Move" << endl;
     inputmove1();
     break;
     case 2:
     cout << "Invalid Move" << endl;
     inputmove1();
     break;
     }
     
   }
//////////////////////////////////////////////////////////////////////////
void inputmove2()
{
     cout << endl;
     cout << "Player 2" << endl;
     cout << "Where would you like to move? >> ";
     cin >> move;
     if (move>9){
                      cout << "Invalid Move" << endl;
     inputmove2();
     }
     switch(board[move]){
                         case 0:
                    board[move]=2;       
                    player=1;              
     break;
     case 1:
     cout << "Invalid Move" << endl;
     inputmove2();
     break;
     case 2:
     cout << "Invalid Move" << endl;
     inputmove2();
     break;
     }
     
   }
/////////////////////////////////////////////////////////////////////////
void checkwin1() 
{
     for (i=1; i<3; i=i+1){
if (board[1]==i & board[4]==i & board[7]==i){
               win=i;
               }
               if (board[1]==i & board[4]==i & board[7]==i){
               win=i;
               }
               if (board[2]==i & board[5]==i & board[8]==i){
               win=i;
               }
               if (board[3]==i & board[6]==i & board[9]==i){
               win=i;
               }
               if (board[1]==i & board[2]==i & board[3]==i){
               win=i;
               }
               if (board[4]==i & board[5]==i & board[6]==i){
               win=i;
               }
               if (board[7]==i & board[8]==i & board[9]==i){
               win=i;
               }    
               if (board[1]==i & board[5]==i & board[9]==i){
               win=i;
               }
                 if (board[3]==i & board[5]==i & board[7]==i){
               win=i;
               }
               }
 }
/////////////////////////////////////////////////////////////////////////
void checkwin2() 
{
 }

/////////////////////////////////////////////////////////////////////////
   void chooseplayer() 
{
        if (player==1){
                       playerc=1;
                       }else{
                             playerc=2;
                             }
 }

/////////////////////////////////////////////////////////////////////////
     
int main()
{
    do{
    drawboard();
    checkwin1();
    checkwin2();
    chooseplayer();
  if (playerc==1){
  inputmove1();
}else{
   inputmove2();
}
    checkwin1();
    checkwin2();
   }while(win==0);
    drawboard();
     switch(win){
               case 1:
                    cout << "Player 1 Wins!";
                    break;
                     case 2:
                    cout << "Player 2 Wins!";
                    break;
                     case 3:
                    cout << "Draw =(";
                    break;
                    default:
                            cout << "QQ";
               }
              cin >> endc;
return 0;
}