批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

[数值计算] 求教A+B Problem的批处理代码

本帖最后由 112 于 2019-9-7 14:08 编辑

输入两个整数a,b,输出它们的和(|a|,|b|<=10^9)。

有负数哦
输入格式
两个整数以空格分开

输出格式
一个数

输入输出样例
输入 #1                                 输出 #1
  1. 20 30
复制代码
  1. 50
复制代码
附上其它语言的代码:
C
  1. #include <stdio.h>
  2. int main() {
  3.     int a,b;
  4.     scanf("%d%d",&a,&b);
  5.     printf("%d", a+b);
  6.     return 0;
  7. }
复制代码
C++
  1. #include <iostream>
  2. #include <cstdio>
  3. using namespace std;
  4. int main() {
  5.     int a,b;
  6.     cin >> a >> b;
  7.     cout << a+b;
  8.     return 0;
  9. }
复制代码
Pascal
  1. var a, b: longint;
  2. begin
  3.     readln(a,b);
  4.     writeln(a+b);
  5. end.
复制代码
Python2
  1. s = raw_input().split()
  2. print int(s[0]) + int(s[1])
  3. Python3
  4. s = input().split()
  5. print(int(s[0]) + int(s[1]))
复制代码
Java
  1. import java.io.*;
  2. import java.util.*;
  3. public class Main {
  4.     public static void main(String args[]) throws Exception {
  5.         Scanner cin=new Scanner(System.in);
  6.         int a = cin.nextInt(), b = cin.nextInt();
  7.         System.out.println(a+b);
  8.     }
  9. }
复制代码
JavaScript (Node.js)
  1. const fs = require('fs')
  2. const data = fs.readFileSync('/dev/stdin')
  3. const result = data.toString('ascii').trim().split(' ').map(x => parseInt(x)).reduce((a, b) => a + b, 0)
  4. console.log(result)
  5. process.exit()
  6. Ruby
  7. a, b = gets.split.map(&:to_i)
  8. print a+b
复制代码
PHP
<?php
  1. $input = trim(file_get_contents("php://stdin"));
  2. list($a, $b) = explode(' ', $input);
  3. echo $a + $b;
  4. Rust
复制代码
use std::io;
  1. fn main(){
  2.     let mut input=String::new();
  3.     io::stdin().read_line(&mut input).unwrap();
  4.     let mut s=input.trim().split(' ');
  5.     let a:i32=s.next().unwrap()
  6.                .parse().unwrap();
  7.     let b:i32=s.next().unwrap()
  8.                .parse().unwrap();
  9.     println!("{}",a+b);
  10. }
复制代码
Go
  1. package main
  2. import "fmt"
  3. func main() {
  4.     var a, b int
  5.     fmt.Scanf("%d%d", &a, &b)
  6.     fmt.Println(a+b)
  7. }
复制代码
C# Mono
  1. using System;
  2. public class APlusB{
  3.     private static void Main(){
  4.         string[] input = Console.ReadLine().Split(' ');
  5.         Console.WriteLine(int.Parse(input[0]) + int.Parse(input[1]));
  6.     }
  7. }
复制代码
Visual Basic Mono
  1. Imports System
  2. Module APlusB
  3.     Sub Main()
  4.         Dim ins As String() = Console.ReadLine().Split(New Char(){" "c})
  5.         Console.WriteLine(Int(ins(0))+Int(ins(1)))
  6.     End Sub
  7. End Module
复制代码
Kotlin
  1. fun main(args: Array<String>) {
  2.     val (a, b) = readLine()!!.split(' ').map(String::toInt)
  3.     println(a + b)
  4. }
复制代码
Haskell
  1. main = do
  2.     [a, b] <- (map read . words) `fmap` getLine
  3.     print (a+b)
  4. Scala
  5. object Main extends App {
  6.     println(scala.io.StdIn.readLine().split(" ").map(_.toInt).sum)
  7. }
复制代码
Perl
  1. my $in = <STDIN>;
  2. chomp $in;
  3. $in = [split /[\s,]+/, $in];
  4. my $c = $in->[0] + $in->[1];
  5. print "$c\n";
复制代码

求教大佬!

TOP

交互输入用 set /p
数值计算用 set /a
要不你自己先试试?
【扫描二维码捐助论坛的朋友请留言注明论坛账号】http://bbs.bathome.net/thread-10403-1-1.html
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

TOP

@echo off
set a=
set b=
set /p input=
set sub=%a:~0,2%
set sub=%b:~-2%
set /a n=a+b
pause>nul

TOP

求教大神哪错了?

TOP

@echo off
set a=
set b=
set /p input=
set sub=%input%:~0,2%
set a=sub
set sub=%input%:~-2%
set b=sub
set /a n=a+b
pause>nul

TOP

大佬:funk::Q
怎么办呀!

TOP

又改了一下
@echo off
set a=
set b=
set /p input=
set sub=%input%:~0,2%
set /a var1=sub
set sub=%input%:~-2%
set /a var2=sub
set /a n=var1+var2
echo %n%
pause>nul[img][/img]

TOP

@echo off
set /p a=
set var1=%a%
set /p b=
set var2=%b%
set /a n=a+b
echo %n%
pause>nul
我做出了,但是规则跟这不一样。这是规则:
‘‘输入格式
在第一行输入两个整数以空格分开

输出格式
在第二行输出一个数,这个数是第一行输入的两个整数的和’’
我目前做出的是在第一和第二行,输入两个整数以分行隔开,
在第三行输出一个数,这个数是第一行和第二行输入的两个整数的和。
主要是求教大神如何截取字符串。

TOP

截字符串就是找死。
  1. @echo Off
  2. set/p input="input one or more integer number,Separate its with space:"
  3. for %%a in (%input%) do set/a re+=%%a
  4. echo;%re%
复制代码
QQ: 458609586

TOP

  1. @echo off
  2. set/pinput=输入2个数,空格分开:
  3. ::第一种for
  4. ::for /f "tokens=1-2,delims= " %%a in ("%input%")do (
  5. :: set a=%%a
  6. :: set b=%%b
  7. ::)
  8. ::第二种set(截取字符)
  9. set/aa=input
  10. set/ab=%input:* =%
  11. ::第三种call
  12. ::call :batinput %input%
  13. set/an=a+b
  14. echo a=%a%,b=%b%。结果:%n%
  15. pause
  16. goto :eof
  17. :batinput
  18. set/aa=%1,b=%2
复制代码
如无特别说明,代码测试环境均为 XP SP3

TOP

  1. @echo off
  2. set /p input=输入2个数,空格分开:
  3. 第一种for
  4. for /f "tokens=1-2,delims= " %%a in ("%input%")do (
  5. set a=%%a
  6. set b=%%b
  7. )
  8. set /a n=a+b
  9. echo a=%a%,b=%b%。结果:%n%
  10. pause
复制代码
delims=(空格)        //这里delims后面就是分隔符(可参考for /?帮助)。
  1. @echo off
  2. set/p input=输入2个数,空格分开:
  3. ::第二种set(截取字符)
  4. set/a a=input
  5. set/a b=%input:* =%
  6. set /a n=a+b
  7. echo a=%a%,b=%b%。结果:%n%
  8. pause
复制代码
%input:* =%,星号*后面有一个空格。实际把第1个空格之前的内容替换为空。
  1. @echo off
  2. set/pinput=输入2个数,空格分开:
  3. ::第三种call
  4. call :batinput %input%
  5. set /a n=a+b
  6. echo a=%a%,b=%b%。结果:%n%
  7. pause
  8. goto :eof
  9. :batinput
  10. set /a a=%1,b=%2
复制代码
call :batinput %input%        //把输入的两个数作为2个参数
set/a a=%1        //把第1个参数赋值给变量a
如无特别说明,代码测试环境均为 XP SP3

TOP

谢谢大神!

TOP

返回列表