B2004 对齐输出

题目描述

读入三个整数,按每个整数占 88 个字符的宽度,右对齐输出它们,按照格式要求依次输出三个整数,之间以一个空格分开。

输入格式

只有一行,包含三个整数 a,b,ca,b,c。整数之间以一个空格分开。

输出格式

只有一行,按照格式要求依次输出三个整数,之间以一个空格分开。

输入输出样例

输入

123456789 0 -1

输出 

123456789        0       -1

说明/提示

对于 100 \%100% 的数据,-2^{31} \le a, b, c < 2^{31}−231≤a,b,c<231。

代码如下:

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,c;
    cin>>a>>b>>c;
    cout<<setw(8)<<a<<" "<<setw(8)<<b<<" "<<setw(8)<<c;
    return 0;
}

这个程序首先包含了标准库bits/stdc++.h,然后定义了一个main函数。在main函数中,程序声明了三个整数变量abc,然后通过输入流cin依次读取三个整数的值。

接下来,程序使用setw函数来设置输出的宽度,使每个整数占据8个字符的宽度,并且在输出时使用空格进行对齐。最后,使用cout输出三个整数abc

整体来说,这个程序的作用是读取三个整数,并以每个整数占据8个字符宽度的形式输出它们。

### Java 中实现横向对齐输出的方法 在 Java 中,可以通过 `System.out.printf` 或者字符串拼接的方式实现横向对齐的格式化输出。以下是具体方法及其应用: #### 使用 `printf` 方法 Java 提供了类似于 C 的 `printf` 函数来支持格式化的输出操作。可以利用 `%d`, `%f`, `%s` 等占位符以及宽度控制参数(如 `-` 表示左对齐,数字表示字段宽度),从而达到横向对齐的效果。 ```java public class HorizontalAlignment { public static void main(String[] args) { String[] names = {"Alice", "Bob", "Charlie"}; int[] scores = {85, 92, 78}; // 打印表头 System.out.printf("%-10s%-10s%n", "Name", "Score"); // 遍历并打印每一行数据 for (int i = 0; i < names.length; i++) { System.out.printf("%-10s%-10d%n", names[i], scores[i]); } } } ``` 上述代码中,`%-10s` 和 `%-10d` 分别指定了字符串和整数占用的最小宽度为 10,并且采用左对齐方式[^3]。 #### 自定义字符串填充法 如果需要更灵活地调整列宽或者处理复杂场景,则可以手动构建每列的内容并通过空格或其他字符补全至固定长度后再连接起来形成最终的一行输出。 ```java public class CustomPaddingExample { public static void main(String[] args) { String[] items = {"Item A", "Long Item B", "ShortC"}; double[] prices = {12.5, 45.678, 99.9}; final int NAME_WIDTH = 15; final int PRICE_WIDTH = 10; // Print header with padding System.out.println(padRight("Product Name", NAME_WIDTH) + padRight("Price", PRICE_WIDTH)); // Separator line System.out.println("-".repeat(NAME_WIDTH + PRICE_WIDTH)); // Data rows for (int i = 0; i < items.length; i++) { System.out.println(padRight(items[i], NAME_WIDTH) + padRight(formatCurrency(prices[i]), PRICE_WIDTH)); } } private static String padRight(String s, int length) { if (s == null || s.length() >= length) return s != null ? s.substring(0, Math.min(s.length(), length)) : ""; StringBuilder sb = new StringBuilder(s); while (sb.length() < length) sb.append(' '); return sb.toString(); } private static String formatCurrency(double price){ return "$" + String.format("%.2f",price); } } ``` 此例子展示了如何创建自定义函数来进行右补齐(`padRight`)以及货币金额格式转换[`formatCurrency`]。这种方法虽然稍微繁琐一点,但它提供了极大的灵活性去适应不同的业务需求[^3]。 ### 总结 无论是简单的 `printf` 还是复杂的字符串加工技术都可以很好地完成水平方向上的整齐排列任务。选择哪种取决于实际应用场景和个人偏好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值