Come tipo di dato userei sicuramente un double o un long double; per ottenere un valore moltiplicato per una potenza di 10 tramite la scanf basta che l'utente usi la notazione numeroEesponentedi10, ad esempio per inserire 5.6*10^66 dovrà inserire 5.6E66.