2015-10-26 67 views
-3

我有一個問題。我可以用我的代碼寫一個printf,但是我必須用cout編寫它,而且我真的不知道該怎麼辦。我嘗試setprecision(3 + 1)等,但它沒有工作,我從空間值。有人能幫我嗎?如何重寫printf到cout中

中的printf與我有問題的樣子:

printf("%.3f\t%.3f\t%.3f\t%.3f\t%.3f\n", i, cos(i), (i+1.0)/(i*i+1.0), exp(i), 1.0/exp(i)) 

我想這一點,我很期待小費。

cout << setprecision(3+1) << i << setprecision(3+1) << cos(i) << setprecision(3+1) << (i+1.0)/(i*i+1.0) << setprecision(3+1) << exp(i << setprecision(3+1) << 1.0/exp(i) << endl; 

和整個代碼看起來:

#include <iostream> 
#include <cstdio> 
#include <cmath> 
#include <math.h> 
#include <cstdlib> 
#include <iomanip> 

using namespace std; 

int main() 
{ 
    float xp = 0; 
    float xk = 0; 
    float dx = 0; 

    cout << "enter the initial x, final x and difference: " << endl; 
    cin >> xp >> xk >> dx; 

    cout << "x\t\tcos(x)\t(x+1)(x*x+1)\texp(x)\t1/exp(x)\n"; 
    for(float i = xp; i <= xk; i = i + dx) 
    { 
     //*printf("%.3f\t%.3f\t%.3f\t%.3f\t%.3f\n", i, cos(i), (i+1.0)/(i*i+1.0), exp(i), 1.0/exp(i));// 
    } 


    return 0; 
} 

林期待http://imgur.com/BVGZstt 即時得到http://imgur.com/uDvZp82

+1

您嘗試了什麼?你期待什麼,你得到了什麼? – NathanOliver

+2

您應該將[編輯]納入問題 – NathanOliver

+2

@NathanOliver的意思是讓您說明您收到了什麼輸出以及您對輸出的期望是什麼(即它與預期的有什麼不同)。 –

回答

2

要設置精度,使用setprecision(3)和使用fixed小數

cout << setprecision(3) << fixed << i << "\t"<< cos(i) << "\t"<< (i+1.0)/(i*i+1.0) << "\t"<< exp(i) << "\t"<< 1.0/exp(i) << endl; 
後打印額外 0
1

您忘記了標籤,像這樣編輯您的C++代碼:

cout << setprecision(3+1) << i << '\t' << setprecision(3+1) << cos(i) << '\t' << setprecision(3+1) << (i+1.0)/(i*i+1.0) << '\t' << setprecision(3+1) << exp(i) << '\t' << setprecision(3+1) << 1.0/exp(i) << endl;