2017-02-16 18 views
-2

我使用這個代碼,找出匯率我不能讓C++ for循環輸出右

#include <iostream> 
#include <iomanip> 
using namespace std; 
int main() 
{ 
    double r, c; 

    cout<<"Input Exchange Rate: US Dollar to Yen: "; 
    cin>>r; 
    cout<<"Input cash on hand: "; 
    cin>>c; 
    cout<<fixed<<setprecision(2); 
    cout<<"\tUS Dollar\tYen\n"; 
    for (int u=1; u<=c; u++) 
    cout<<'\t'<<u<<'\t'<<u*r<<endl; 
    return 0; 
} 

我希望我的輸出首先由那些然後再出現幾十上百 但我得到這篇enter image description here

+2

你能告訴我們究竟你希望它的輸出? – HolyBlackCat

+2

您的文字圖像[不是很有幫助](// meta.unix.stackexchange.com/q/4086)。它不能被朗讀或複製到編輯器中,而且它的索引也不是很好,這意味着具有相同問題的其他用戶不太可能在此找到答案。請[編輯]您的文章直接合並相關文本(最好使用複製+粘貼以避免轉錄錯誤)。 –

回答

1

要產生一個步驟輸出,直到10,10步驟,直到100等可以取代你的循環

for (int u=1; u<=c; u++) 
cout<<'\t'<<u<<'\t'<<u*r<<endl; 

通過下面的代碼:

int factor = 1; 
do 
{ 
    for (int u=1; u < 10; u++) 
    { 
     int dollars = u * factor; 
     if(dollars > c) 
      break; 
     cout<<'\t'<<dollars <<'\t'<<dollars * r<<endl; 
    } 
    factor *= 10; 
} 
while(factor <= c); 
0

我想,也許這是你在找什麼:

double sum = c * r; 
double value = fmod(sum, 10); 
std::cout << "Ones: " << value << std::endl; 

sum -= value; 
value = fmod(sum, 100); 
std::cout << "Tens: " << value/10.0 << std::endl; 

sum -= value; 
value = fmod(sum, 1000); 
std::cout << "Hundreds: " << value/100.0 << std::endl;