首页 > 解决方案 > 以类似表格的顺序显示来自 for 循环的值以使其更加清晰和干净?

问题描述

信息:到目前为止,我的大部分问题都已解决。如果您愿意,请滚动到最底部以“这是我目前的进展”以进一步帮助我。谢谢!

我有以下代码,我想以类似干净的表格的顺序显示此代码的编译结果,以使查看编译命令行程序的用户更清楚。

#include <iostream>
#include <cmath>
using namespace std;

int main()
{double x;
for(x=-10;x<=10;x+=0.5)
    cout << "x=" << x << 3*x*x-7*x+5 << endl;
    return 0;
}

我有点着急,所以我真的看不出老师在黑板上写了什么如何添加一个类似桌子的顺序。我只记得这样的事情:

#include <iostream>
#include <cmath>
using namespace std;

int main()
{double x;
for(x=-10;x<=10;x+=0.5)
    cout << "x=" << x << "|*|" << 3*x*x-7*x+5 << endl;
    return 0;
}

我知道第二个代码可能完全错误,但它是一个带有这个符号的代码:|

这对某人有意义吗?也许有人可以弄清楚我的老师到底尝试了什么。或者也许还有另一种方法可以以良好且清晰的顺序显示值。

让我给你举个例子,我所说的明确顺序到底是什么意思。以下示例将向您显示第一个代码(混乱、无序等)的编译结果(在 cmd 中)

x=-10 375 
x=-9.5 465 
x=-9 123 
x=-8.5 124

而不是上面的结果,我想要类似的东西。

x=  -  10.0     375 
x=  -   9.5     465 
x=  -   9       123 
x=  -   8.5     124

不幸的是,我不知道该怎么做。我查了一些方法,但我在想:也许我老师试图展示的东西比我查的方法更容易。所以也许这里有人知道它是如何按照我在第二个代码中尝试的方式完成的。如果没有,如果有人能告诉我对输出进行排序的最短和最简单的方法,我会很高兴。

提前致谢

.--------------------------------- 。

这是我到目前为止的进展。我使用 setw 为线条添加宽度。更改后的代码将如下所示(添加了包含 iomanip):

cout << std::setw(10) << x << std::setw(10) << 3*x*x-7*x+5 << endl;

问题是,数字范围不合适。比如..个位数,十步数字,百步数字不在同一行。它们看起来像这样:

      -10.0         375  
      -9.5       342.25

ETC..

我想让结果变成这样,你可以清楚地看到数字的第一个数字、第二个数字等:

      - 10.0         375  
      -  9.5         342.25

有人可能知道我如何发出命令来这样订购它?

标签: c++for-loop

解决方案


std::setw结合std::setprecisionand std::fixed

#include <iostream>
#include <iomanip>

int main() {
    std::cout << std::setprecision(2) << std::fixed;
    for(double x = -10.0; x <= 10.; x += 0.5) {
        std::cout << std::setw(10) << x << std::setw(10) << 3 * x * x - 7 * x + 5 << "\n";
    }
}

推荐阅读