2016-10-26 2 views
0

Новое программирование на C++. Есть ли способ сделать код лучше, чтобы он не повторял код.C++ Количество мощностей 10

if (totalDistance < pow(10, 3)) { 
    cout << "\nTotal (approx) travel distance = " << totalDistance << " million km\n" << endl; 
} 
else if (totalDistance < pow(10, 6)) { 
    totalDistance = totalDistance/pow(10, 3); 
    cout << "\nTotal (approx) travel distance = " << totalDistance << " billion km\n" << endl; 
} 
else if (totalDistance < pow(10, 9)) { 
    totalDistance = totalDistance/pow(10, 6); 
    cout << "\nTotal (approx) travel distance = " << totalDistance << " trillion km\n" << endl; 
} 
+1

Начнет с того, вы можете поставить 'cout' строку в функции. –

+0

Вы должны использовать 'double' литералы вместо' pow'. Замените 'pow (10,3)' на '1e3' – Kerndog73

+1

Если все работает, замена стека кода обзора лучше подходит для этого. –

ответ

1
cout << "\nTotal (approx) travel distance = "; 
if (totalDistance < pow(10, 3)) { 
    cout << totalDistance << " million km\n"; 
else if (totalDistance < pow(10, 6)) { 
    cout << totalDistance/pow(10, 3) << " billion km\n"; 
}else if (totalDistance < pow(10, 9)) { 
    cout << totalDistance/pwo(10, 6) << " trillion km\n"; 
} 

Я предположив вы больше не используете totalDistance, и вам не нужен Endl, если вы уже используете «\ п».

0

Самое простое улучшение:

if (totalDistance < pow(10, 3)) { 
    outputDistance(totalDistance); 
} 
else if (totalDistance < pow(10, 6)) { 
    totalDistance = totalDistance/pow(10, 3); 
    outputDistance(totalDistance); 
} 
else if (totalDistance < pow(10, 9)) { 
    totalDistance = totalDistance/pow(10, 6); 
    outputDistance(totalDistance); 
} 

private void outputDistance(const double totalDistance) { 
cout << "\nTotal (approx) travel distance = " << totalDistance << " trillion km\n" << endl; 
} 
Смежные вопросы