题目链接

复读机

题目描述

无论输入了什么,您都应输出所输入的内容,输出之间以换行隔开。

输入描述: 输入包含 5 行:

  • 第一行为一个整数 a
  • 第二行为一个长整数 b
  • 第三行为一个浮点数 c
  • 第四行为一个小写字母 d
  • 第五行为一个字符串 s (不含空格或换行符)。

输出描述: 输出 5 行,且每行都与对应行输入内容完全相同。特别的,对于浮点数 c,你需要 保留一位小数 后输出。

解题思路

这是一个综合性的基础输入输出练习题,它将之前学习的整数、长整数、浮点数、字符和字符串的I/O操作结合在了一起。

解题的关键在于:

  1. 按顺序为每种数据类型声明合适的变量(int, long long, double, char, string 等)。
  2. 依次从标准输入读取这五个不同类型的数据。
  3. 按顺序将它们输出到标准输出。
  4. 特别注意对浮点数的输出需要进行格式化,精确到小数点后一位。

代码

#include <iostream>
#include <string>
#include <iomanip> // 需要此头文件来格式化输出

using namespace std;

int main() {
    int a;
    long long b;
    double c;
    char d;
    string s;

    cin >> a >> b >> c >> d >> s;

    cout << a << endl;
    cout << b << endl;
    cout << fixed << setprecision(1) << c << endl; // 格式化浮点数
    cout << d << endl;
    cout << s << endl;

    return 0;
}
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int a = sc.nextInt();
        long b = sc.nextLong();
        double c = sc.nextDouble();
        String d = sc.next(); // 读取字符
        String s = sc.next();

        System.out.println(a);
        System.out.println(b);
        System.out.printf("%.1f%n", c); // 格式化浮点数
        System.out.println(d);
        System.out.println(s);
    }
}
# 依次读取五行输入
a = int(input())
b = int(input()) # Python 的 int 类型可以处理长整数
c = float(input())
d = input()
s = input()

# 依次输出
print(a)
print(b)
print(f"{c:.1f}") # 格式化浮点数
print(d)
print(s)

算法及复杂度

  • 算法:顺序执行基础输入与输出操作。
  • 时间复杂度: - 主要由读取和输出字符串的长度 L 决定,其他操作为常数时间。
  • 空间复杂度: - 主要用于存储输入的字符串。