好的,所以我正在編寫一個程序,其總體目的不一定非常重要,但是在程序中有一點我試圖打印出一張顯示n,n!和x^n(其中n和x都是用戶輸入)的表格。在C++中沒有科學記數法的循環中顯示特定數字的問題
我迄今的代碼如下:
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
float x, xn, factorial = 1;
float n = 1;
cout << "Enter an angle in radians: ";
cin >> x;
while (n <= 1)
{
cout << "Enter the number of terms to be included into the Taylor series expansion: ";
cin >> n;
if (n < 1)
{
cout << "Error! Try again\n";
}
}
cout << "n\tn!\tx^n\t\n";
for (int i = 1; i <= n; i++)
{
cout << i;
factorial *= i;
cout << "\t" << factorial;
xn = pow(x, i);
cout << "\t" << setprecision(i) << xn;
cout << endl;
}
return 0;
}
現在,我遇到的問題是,它開始顯示我的X^n的科學記數法不言而喻過去的5位小數後。我不希望它這樣做。正如你可能已經注意到的那樣,我嘗試過使用setprecision(i),但那並不能完成這項工作。這讓我感到困惑,因爲a。)我不確定我知道我需要使用的代碼來讓它停止以科學記數法和b來顯示。)我不希望n和n的其他輸出!受到操作的影響,我將不得不使用x^n的輸出,這對我來說很棘手,因爲它們都是在同一個循環中計算和輸出的。我在這裏不知所措,非常感謝任何幫助!我會爲你們發佈一個程序輸出的圖像,但是看起來我需要更多的聲譽才能做到這一點。另外,在附註中,如果您有更好的方法來格式化我的表格,我很樂意聽到它。
這做的伎倆!謝謝一堆。我也有一個問題 - 在我來到這裏之前,我嘗試了幾乎完全相同的代碼,但是我已經在setprecision(i)之前有了std :: fixed(在你的代碼中情況正好相反) - 它沒有工作。你知道這是爲什麼嗎?我覺得我可能不完全理解這兩個陳述是如何協同工作的。 –
沒有理由。你可以在這裏看到([coliru](http://coliru.stacked-crooked.com/a/3bf869a1868c2d56)),即使在換位 – Amadeus