PTA:又来一个上三角数字三角形

输入一个正整数n,输出具有n层的上三角数字三角形。

输入格式:

只有一个正整数n,1<=n<=100。

输出格式:

一个上三角数字三角形,每个数字占四个字符位置。

输入样例:

5

输出样例:

   1   6  10  13  15
   2   7  11  14
   3   8  12
   4   9
   5

今天又学会一个C++知识点,, 控制输出位数的方法:

1. 控制整数输出的位数(填充和宽度设置)

当需要控制整数输出指定宽度时,可以使用std::setw操纵符来设置输出宽度,若数字位数不足则默认用空格填充。还可以结合std::setfill来指定填充字符。

#include 
#include 

int main() {
    int num = 123;
    // 设置输出宽度为4,默认用空格填充
    std::cout << std::setw(4) << num << std::endl;
    // 设置输出宽度为4,用 0 填充
    std::cout << std::setfill('0') << std::setw(4) << num << std::endl;
    return 0;
}

代码解释

1)#include :包含输入输出操纵符的头文件,std::setw 和 std::setfill 都在这个头文件中定义。

2)std::setw(4):设置输出的最小宽度为 4 个字符。

3)std::setfill('0'):指定填充字符为 0。

2. 控制浮点数输出的位数

2.1 控制小数位数

可以使用 std::setprecision 操纵符来控制浮点数输出的小数位数。默认情况下,它控制的是有效数字位数,结合 std::fixed 可以控制小数点后的位数。

#include 
#include 

int main() {
    double num = 3.1415926;
    // 控制有效数字位数为 3
    std::cout << std::setprecision(3) << num << std::endl;
    // 控制小数点后位数为 3
    std::cout << std::fixed << std::setprecision(3) << num << std::endl;
    return 0;
}

代码解释

1)std::setprecision(3):设置输出的有效数字位数为 3。
2)std::fixed:将浮点数输出格式设置为固定小数位数格式,之后 std::setprecision 控制的就是小数点后的位数。

2.2 控制科学计数法输出位数

结合 std::scientific 操纵符可以以科学计数法输出浮点数,并通过 std::setprecision 控制有效数字位数。

#include 
#include 

int main() {
    double num = 123456789.0;
    // 以科学计数法输出,控制有效数字位数为 3
    std::cout << std::scientific << std::setprecision(3) << num << std::endl;
    return 0;
}

3. 控制字符串输出的位数

同样可以使用 std::setw 来控制字符串输出的宽度,若字符串长度不足则用空格填充。

#include 
#include 
#include 

int main() {
    std::string str = "abc";
    // 设置输出宽度为 8,默认用空格填充
    std::cout << std::setw(8) << str << std::endl;
    return 0;
}

这道题的代码在此:

#include
#include
using namespace std;
int main()
{
    int n;
    cin>>n;
    int a[n][n];
    int k=1;
    int times=n;
    for(int i=0;i

对了,因为频繁书写std::会不美观(当然主要是麻烦啦)所以说可以使用 using namespace std;语句,该语句的作用是将 std 命名空间中的所有标识符引入到当前的全局作用域中。这样,在后续的代码里就可以直接使用 std 命名空间中的标识符,而无需每次都加上 std:: 前缀啦~~

(PS:仅限小项目!!因为在大型项目中,使用 using namespace std; 会使代码的来源变得不清晰,难以确定某个标识符是来自标准库还是其他自定义的命名空间,从而降低了代码的可读性和可维护性。)

你可能感兴趣的:(C语言PTA习题,数据结构,c++,c语言)