请编写一个简单程序,用户输入2个整型数据存储在变量中,并输出他们的和与差。
输入格式:2个整型数据,用逗号分隔
输出格式:输出分两行,分别输出他们的和与差
输入:3,5
输出:3+5=8
3-5=-2
对于c++,因为我并没有系统的学过这个语言,所以在使用的过程中C语言和c++是穿插使用的,所以在这个问题中,为了方便,我就直接用C语言解决了这个问题。
#include
using namespace std;
int main( )
{
int a , b ;
scanf("%d,%d",&a,&b);
printf("%d+%d=%d\n",a,b,a+b);
printf("%d-%d=%d",a,b,a-b);
return 0;
}
使用Java解决此问题,需要使用到split()函数,以下是split()函数相关概念。
(下面的定义与实例均来源于菜鸟教程,具体内容可以参考Java split() 方法 | 菜鸟教程 (runoob.com))
Java String类中的split() 方法是根据匹配给定的正则表达式来拆分字符串。
注意: . 、 $、 | 和 * 等转义字符,必须得加 \\。
注意:多个分隔符,可以用 | 作为连字符。
例1:String 类的 split 方法示例:定义一个 String 字符串类型变量 str,一个 String[] buff 数组,将"小学,初中,高中,大专,本科,研究生,博士"赋值给 str,用 , 分割 str 字符串,并且将分割后的字符串数组赋值给 buff。
public class Test { public static void main(String args[]) { String str = "小学,初中,高中,大专,本科,研究生,博士"; String[] buff = str.split(","); for(int i=0;i
例2:. 必须得加转义字符\\,以下是拆分 IP 地址的实例:
public class Demo { public static void main(String args[]) { String str = "192.168.1.1"; // . 必须得加 转义字符\\ for(String s : str.split("\\.")){ System.out.println(s); } } }
通过上述内容,可以学习到使用分隔符的具体过程,即首先将输入转换成字符串,然后重新定义一个字符串数组,使用split()函数将输入的字符串用’,’分隔,将分割后的字符串赋值给新定义的字符串数组中。
依照上述方法实现题目要求,具体代码如下:
/*先转换成输入一串字符串,然后定义数组,split以“,”分割*/
Scanner input = new Scanner(System.in);
String s = input.next();
String[] str = s.split(“,”); //这里要使用双引号,因为这个参数应该是字符串,而不是字符
上述代码实现了将字符串用“,”分隔,并且将分隔后的字符串赋值给了字符串数组,依据题目要求,输入两个整型变量,然后输出它们的和与差。具体代码如下:
/*这里不直接赋值是因为数组是字符串类型的,而题目要求是整型,
所以使用Integer.parseInt()将()内的String类型字符串转化为int类型*/
int a = Integer.parseInt(str[0]);
int b = Integer.parseInt(str[1]);
int c = a + b ;//若是直接在输出中使用“+”表示字符串拼接,所以提前计算出
int d = a - b;
System.out.println(a + "+" + b + "=" + c );//这里“+”表示拼接
System.out.println(a + "-" + b + "=" + d );
整体实现代码如下:
import java.util.Scanner;
import java.util.*;
class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// code here
String s = input.next();
String[] str = s.split(",");//使用双引号
/*这里不直接赋值是因为数组是字符串类型的,而题目要求是整型,
所以使用Integer.parseInt()将()内的String类型字符串转化为int类型*/
int a = Integer.parseInt(str[0]);
int b = Integer.parseInt(str[1]);
int c = a + b ;//若是直接在输出中使用“+”表示字符串拼接,所以提前计算出
int d = a - b;
System.out.println(a + "+" + b + "=" + c );//这里“+”表示拼接
System.out.println(a + "-" + b + "=" + d );
input.close();
}
}
使用python解决该问题,需要使用map()函数。
参考网站:Python map() 函数 | 菜鸟教程 (runoob.com)
map() 函数语法:
map(function, iterable, ...)描述
map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
参数
- function -- 函数
- iterable -- 一个或多个序列
所以题目要求输入格式:
a,b=map(int,input().split(","))
'''这里首先需要输入,即使用input()函数,然后在输入的时候使用“,”隔开,即使用split()函数'''
print输出多种类型变量,可以使用“,”隔开
实现代码如下:
print(a,"+",b,"=",a+b)
print(a,"-",b,"=",a-b)
但是使用“,”隔开时,输出的结果中“,”也占一个空格,所以输出的结果是这样:
要想达到预期的结果,就需要使用到sep参数。
sep参数是用来设定print()中的多个对象之间的连接符号是什么,默认是空格,而print中多个对象之间是通过逗号,来分隔。
使用逗号分隔,中间会有空格,如上图。
而若是使用sep参数,可以设置sep=“”等来设置分隔符号,因此空格被替换为无空格
实现代码如下:
print(a,"+",b,"=",a+b,sep="")
print(a,"-",b,"=",a-b,sep="")
结果如下:
整体实现代码如下:
def main():
#code here
a,b = map(int,input().split(","))
print(a,"+",b,"=",a+b,sep="")
print(a,"-",b,"=",a-b,sep="")
pass
if __name__ == '__main__':
main();
以上就是昨天遗留的一个问题,如果以后学习到其他方法,还会补充。
要求:将数据放进40H开始的单元中。
最笨但是最简单的办法,就是使用MOV指令一个一个移进去,代码如下:
//数据块传送程序设计 编写程序将 40H 开始的 16 个数据送到 90H 开始的 16 个单元中
START:
MOV R0,#40H
MOV R1,#90H
MOV R2,#16
TABLE:
MOV 40H,#0
MOV 41H,#1
MOV 42H,#2
MOV 43H,#3
MOV 44H,#4
MOV 45H,#5
;…………给16个单元分别赋值
LOOP:
MOV A,@R0
MOV @R1,A
LJMP NEXT
NEXT:
INC R0
INC R1
DJNZ R2,LOOP
END
明天继续吧。