这是我的博客(cpp零基础教程)中的文章,借鉴或者转载需要通过作者的同意

大家好,欢迎来到cpp零基础教程,我是Charzie,在本文之前,我们先看一看上节课的内容:上节课内容

该博客详细介绍了C++中scanf和printf函数的基本用法,包括格式控制字符串、常见格式说明符及示例代码。scanf用于从标准输入读取格式化数据,而printf则用于向标准输出打印格式化数据。掌握它们的用法,可以提高C++编程的效率和质量。

OKOK,今天我们不讲新的内容,而是讲几道顺序结构的典型题,话不多说,直接进入刷题环节:

A+B Problem

题目背景

强烈推荐新用户必读帖

不熟悉算法竞赛的选手请看这里:

算法竞赛中要求的输出格式中,不能有多余的内容这也包括了“请输入整数 $\bm a$ 和 $\bm b$” 这一类的提示用户输入信息的内容。若包含了这些内容,将会被认为是 Wrong Answer,即洛谷上的 WA。在对比代码输出和标准输出时,系统将忽略每一行结尾的空格,以及最后一行之后多余的换行符。

若因此类问题出现本机似乎输出了正确的结果,但是实际提交结果为错误的现象,请勿认为是洛谷评测机出了问题,而是你的代码中可能存在多余的输出信息。用户可以参考在题目末尾提供的代码。

此外,请善用应用中的在线 IDE 功能,以避免不同平台的评测产生差异。

最后,请不要在对应的题目讨论区中发布自己的题解,请发布到题解区域中,否则将处以删除或禁言的处罚。若发现无法提交题解则表明本题题解数量过多,仍不应发布讨论。若您的做法确实与其他所有题解均不一样,请联系管理员添加题解。

题目描述

输入两个整数 $a, b$,输出它们的和($|a|,|b| \le {10}^9$)。

注意

  1. Pascal 使用 integer 会爆掉哦!
  2. 有负数哦!
  3. C/C++ 的 main 函数必须是 int 类型,而且 C 最后要 return 0。这不仅对洛谷其他题目有效,而且也是 NOIP/CSP/NOI 比赛的要求!

好吧,同志们,我们就从这一题开始,向着大牛的路进发。

任何一个伟大的思想,都有一个微不足道的开始。

输入格式

两个以空格分开的整数。

输出格式

一个整数。

样例 #1

样例输入 #1

20 30

样例输出 #1

50

本题各种语言的程序范例:

C

#include <stdio.h>

int main()
{
    int a,b;
    scanf("%d%d",&a,&b);
    printf("%d\n", a+b);
    return 0;
}

C++

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    int a,b;
    cin >> a >> b;
    cout << a+b << endl;
    return 0;
}

Pascal

var a, b: longint;
begin
    readln(a,b);
    writeln(a+b);
end.

Python2

s = raw_input().split()
print int(s[0]) + int(s[1])

Python3

s = input().split()
print(int(s[0]) + int(s[1]))

Java

import java.io.*;
import java.util.*;
public class Main {
    public static void main(String args[]) throws Exception {
        Scanner cin=new Scanner(System.in);
        int a = cin.nextInt(), b = cin.nextInt();
        System.out.println(a+b);
    }
}

JavaScript (Node.js)

const fs = require('fs')
const data = fs.readFileSync('/dev/stdin')
const result = data.toString('ascii').trim().split(' ').map(x => parseInt(x)).reduce((a, b) => a + b, 0)
console.log(result)
process.exit() // 请注意必须在出口点处加入此行

Ruby

a, b = gets.split.map(&:to_i)
print a+b

PHP

<?php
$input = trim(file_get_contents("php://stdin"));
list($a, $b) = explode(' ', $input);
echo $a + $b;

Rust

use std::io;

fn main(){
    let mut input=String::new();
    io::stdin().read_line(&mut input).unwrap();
    let mut s=input.trim().split(' ');

    let a:i32=s.next().unwrap()
               .parse().unwrap();
    let b:i32=s.next().unwrap()
               .parse().unwrap();
    println!("{}",a+b);
}

Go

package main

import "fmt"

func main() {
    var a, b int
    fmt.Scanf("%d%d", &a, &b)
    fmt.Println(a+b)
}

C# Mono

using System;

public class APlusB{
    private static void Main(){
        string[] input = Console.ReadLine().Split(' ');
        Console.WriteLine(int.Parse(input[0]) + int.Parse(input[1]));
    }
}

Visual Basic Mono

Imports System

Module APlusB
    Sub Main()
        Dim ins As String() = Console.ReadLine().Split(New Char(){" "c})
        Console.WriteLine(Int(ins(0))+Int(ins(1)))
    End Sub
End Module

Kotlin

fun main(args: Array<String>) {
    val (a, b) = readLine()!!.split(' ').map(String::toInt)
    println(a + b)
}

Haskell

main = do
    [a, b] <- (map read . words) `fmap` getLine
    print (a+b)

Lua

a = io.read('*n')
b = io.read('*n')
print(a + b)

OCaml

Scanf.scanf "%i %i\n" (fun a b -> print_int (a + b))

Julia

nums = map(x -> parse(Int, x), split(readline(), " "))
println(nums[1] + nums[2])

Scala

object Main extends App {
    println(scala.io.StdIn.readLine().split(" ").map(_.toInt).sum)
}

Perl

my $in = <STDIN>;
chomp $in;
$in = [split /[\s,]+/, $in];
my $c = $in->[0] + $in->[1];
print "$c\n";

聪明的同学应该直接从题目中自带的代码里面复制就提交了,但是我们还是要分析一下这道题目

分析

这道题目需要我们输入两个数a和b,输出一个数来表示他们的和,那么我们可以使用C++中自带的函数cin和cout,也可以使用print和scanf,这里我们使用cin和cout的写法,感兴趣的同学可以尝试使用printf和scanf写一下代码

代码

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

另外,同学们要养成读题的好习惯,一定要把题读完再快速的写代码(特别是数据范围这一类,十分坑人,作者之前就被坑过很多次)

输出字符菱形

题目描述

* 构造一个对角线长 $5$ 个字符,倾斜放置的菱形。

输入格式

没有输入要求。

输出格式

如样例所示。用 * 构成的菱形。

样例 #1

样例输入 #1

样例输出 #1

  *
 ***
*****
 ***
  *

分析

这道题就是一道单纯的输出题,可以使用cout和cin做,接下来,我们来看一看使用printf写的代码吧:

代码

繁琐版:

#include<bits/stdc++.h>
using namespace std;
int main() {
    printf("  *\n");
    printf(" ***\n");
    printf("*****\n");
    printf(" ***\n");
    printf("  *\n");
    return 0;
}

简单版(主程序只有一行代码):

#include<bits/stdc++.h>
int main() {
    printf("  *\n ***\n*****\n ***\n  *\n");
    return 0;
}

这里用到了换行符\n,它的作用就是换行

作业

超级玛丽游戏

题目背景

本题是洛谷的试机题目,可以帮助了解洛谷的使用。

建议完成本题目后继续尝试 P1001P1008

另外强烈推荐新用户必读贴

题目描述

超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。

                ********
               ************
               ####....#.
             #..###.....##....
             ###.......######              ###            ###
                ...........               #...#          #...#
               ##*#######                 #.#.#          #.#.#
            ####*******######             #.#.#          #.#.#
           ...#***.****.*###....          #...#          #...#
           ....**********##.....           ###            ###
           ....****    *****....
             ####        ####
           ######        ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
##########################################    #----------#
#.....#......##.....#......##.....#......#    #----------#
##########################################    #----------#
#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#
##########################################    ############

输入格式

输出格式

如描述

字符三角形

题目描述

给定一个字符,用它构造一个底边长 $5$ 个字符,高 $3$ 个字符的等腰字符三角形。

输入格式

输入只有一行,包含一个字符。

输出格式

该字符构成的等腰三角形,底边长 $5$ 个字符,高 $3$ 个字符。

样例 #1

样例输入 #1

*

样例输出 #1

  *
 ***
*****

提示

对于 $100 \%$​ 的数据,输入的字符是 ASCII 中的可见字符。

苹果采购

题目描述

现在需要采购一些苹果,每名同学都可以分到固定数量的苹果,并且已经知道了同学的数量,请问需要采购多少个苹果?

输入格式

输入两个不超过 $10^9$ 正整数,分别表示每人分到的数量和同学的人数。

输出格式

一个整数,表示答案。保证输入和答案都在 int 范围内的非负整数。

样例 #1

样例输入 #1

5 3

样例输出 #1

15

作业都是非常简单的题目,大家可以快速AC一下

好了,这就是我们这节课程的内容,我们下节课再见!


Charzie
2 声望0 粉丝

Everything likes coding.