Premetto che sono alle prime armi, io risolverei questo problema con due variabili in cui immagazzinare i giorni trascorsi dall'inizio dell'anno fino alla prima data e i giorni trascorsi fino alla seconda, dopodichè effettuare una sottrazione e aggiungere il numero dei giorni trascorsi negli anni di differeanza tra le date.
Ho scritto il codice che utilizzerei, ovviamente va perfezionato e adattato all'esigenza, inserendo i possibili errori nell'immissione dati, spero possa comunque esserti utile...
codice:
#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{
     int giorno,mese,anno,giorno1,mese1,anno1,addendo1=0,addendo2=0,risultato,i=0;
     cout<<"inserisci la prima data(giorno): ";
     cin>>giorno;
     cout<<"\ninserisci la prima data(mese): ";
     cin>>mese;
     cout<<"\ninserisci la prima data(anno): ";
     cin>>anno;
     cout<<"\ninserisci la seconda data(giorno): ";
     cin>>giorno1;
     cout<<"\ninserisci la seconda data(mese): ";
     cin>>mese1;
     cout<<"\ninserisci la seconda data(anno): ";
     cin>>anno1;
     i=0;
     while(i<mese){/*somma alla variabile della prima quantità di giorni i giorni trascorsi dall'inizio dell'anno, in base ai mesi*/
     switch(i){
     case 0:addendo1+=31;break;
     case 1:addendo1+=28;break;
     case 2:addendo1+=31;break;
     case 3:addendo1+=30;break;
     case 4:addendo1+=31;break;
     case 5:addendo1+=30;break;
     case 6:addendo1+=31;break;
     case 7:addendo1+=31;break;
     case 8:addendo1+=30;break;
     case 9:addendo1+=31;break;
     case 10:addendo1+=31;break;
     case 11:addendo1+=31;break;
     }
     i++;
     }
     addendo1+=giorno;
     i=0;
     while(i<mese1){
     switch(i){
     case 0:addendo2+=31;break;
     case 1:addendo2+=28;break;
     case 2:addendo2+=31;break;
     case 3:addendo2+=30;break;
     case 4:addendo2+=31;break;
     case 5:addendo2+=30;break;
     case 6:addendo2+=31;break;
     case 7:addendo2+=31;break;
     case 8:addendo2+=30;break;
     case 9:addendo2+=31;break;
     case 10:addendo2+=31;break;
     case 11:addendo2+=31;break;
     }
     i++;
     }
     addendo2+=giorno1;
     cout<<"la distanza tra le date e' di "<<(addendo2-addendo1)+((anno1-anno)*365)<<" giorni"<<endl; /*sottrae ai giorni dalla data di scadenza quelli dei giorni dalla data di inizio,poi aqggiunge gli anni trascorsi*/
    system("PAUSE");
    return 0;
}