{ }codelper
连接输出P0373

把加分后的分数用逗号连起来

要给小组里 n 名学生的分数都加上同样的加分 b。
第一行给出 n 和 b,用一个空格隔开。
第二行给出 n 个分数,用一个空格隔开。
请按给出的顺序,在一行里输出加分后的 n 个分数。
分数与分数之间放一个逗号和一个空格(", ")。
第一个分数前面和最后一个分数后面什么都不加。
加分后的分数超过 100 也照原样输出。

输入
1 ≤ n ≤ 100,1 ≤ b ≤ 100,0 ≤ 分数 ≤ 100(均为整数)
输出
一行:加分后的 n 个分数,用 ", " 连接
样例 1 · stdin
3 5
70 85 90
stdout
75, 90, 95
样例 2 · stdin
1 10
100
stdout
110
main.py
输入(stdin)

运行时这些行会依次作为 input()/标准输入传入(运行中不会等待输入)。

$ 就绪

请在电脑上打开以编写和运行代码。在手机上可以查看题目和题解。

其他语言怎么写?查看各语言题解 · 8 种语言题解

把多个值连成一行、只在中间插入分隔内容的工具,各语言不同。
Python ", ".join(…),JS、TS 数组.join(", "),Java StringJoiner,C# string.Join(", ", 数组),Craykon 列表.连接(", ")。
C 和 C++ 的解法自己写“不是第一个分数就在前面加 , ”。
陷阱一:每个分数后面都写 , ,最后一个分数后面也会留下逗号(例 1 变成 75, 90, 95,)。
陷阱二:直接输出列表,得到的样子由语言自己决定。
Python print(列表) 和 Java Arrays.toString(数组) 会加方括号,如 [75, 90, 95];JS join() 不给分隔符时不带空格地连成 75,90,95;Craykon 控制台.输出(列表) 只用空格连接,变成 75 90 95。
陷阱三:Python 的 join 只连接字符串。
直接传数字会因 TypeError 停止,所以要换成 str(x + b) 再传。
JS、TS join、C# string.Join、Craykon 连接 会自动把数字变成字符串。
陷阱四:在 JS 中不用 Number 把分数转成数,"70" + 5 就不是加法而是拼接,得到 705(例 1 变成 705, 855, 905)。

Pythonmain.py · 4 行
n, b = map(int, input().split())scores = list(map(int, input().split()))# join은 문자열만 이어 주므로 수를 str로 바꿔서 넘긴다print(", ".join(str(x + b) for x in scores))
JavaScriptmain.js · 5 行
const lines = require("fs").readFileSync(0, "utf8").split("\n");const [n, b] = lines[0].trim().split(/\s+/).map(Number);const scores = lines[1].trim().split(/\s+/).map(Number);// join(", ")은 사이에만 ", "을 넣는다. 수는 알아서 문자열로 바뀐다console.log(scores.map((x) => x + b).join(", "));
TypeScriptmain.ts · 6 行
import { readFileSync } from "node:fs";const lines: string[] = readFileSync(0, "utf8").split("\n");const [n, b]: number[] = lines[0].trim().split(/\s+/).map(Number);const scores: number[] = lines[1].trim().split(/\s+/).map(Number);// join(", ")은 사이에만 ", "을 넣는다. 수는 알아서 문자열로 바뀐다console.log(scores.map((x: number) => x + b).join(", "));
JavaMain.java · 16 行
import java.util.Scanner;import java.util.StringJoiner; public class Main {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        int n = sc.nextInt(), b = sc.nextInt();        // StringJoiner는 사이에만 ", "을 넣는다. 문자열만 받으므로 수를 바꿔서 넣는다        StringJoiner line = new StringJoiner(", ");        for (int i = 0; i < n; i++) {            int x = sc.nextInt();            line.add(String.valueOf(x + b));        }        System.out.println(line);    }}
C#Main.cs · 18 行
using System; class Program{    static void Main()    {        string[] head = Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries);        int n = int.Parse(head[0]), b = int.Parse(head[1]);        string[] parts = Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries);        int[] result = new int[n];        for (int i = 0; i < n; i++)        {            result[i] = int.Parse(parts[i]) + b;        }        // string.Join은 사이에만 ", "을 넣는다. 수 배열도 그대로 받는다        Console.WriteLine(string.Join(", ", result));    }}
C++main.cpp · 14 行
#include <iostream> int main() {    int n, b;    std::cin >> n >> b;    for (int i = 0; i < n; i++) {        int x;        std::cin >> x;        // 첫 점수가 아닐 때만 앞에 ", "을 쓴다        if (i > 0) std::cout << ", ";        std::cout << x + b;    }    std::cout << "\n";}
Cmain.c · 15 行
#include <stdio.h> int main(void) {    int n, b;    if (scanf("%d %d", &n, &b) != 2) return 0;    for (int i = 0; i < n; i++) {        int x;        if (scanf("%d", &x) != 1) return 0;        /* C에는 이어 주는 도구가 없다: 첫 점수가 아닐 때만 앞에 ", "을 쓴다 */        if (i > 0) printf(", ");        printf("%d", x + b);    }    printf("\n");    return 0;}
Craykonmain.cray · 11 行
head = 控制台.读数字();n = head[0];b = head[1];scores = 控制台.读数字();result = [];遍历 (x 在 scores){    result.添加(x + b);}// 잇기(", ")는 사이에만 ", "을 넣는다控制台.输出(result.连接(", "));