第4章 函数和预处理
计算机二级 C语言第四章-第五章

逻辑或
逻辑非
“&&”和“ ||”是双目运算符 “!”是单目运算符
C语言程序设计
第五章 选择结构程序设计
逻辑运算真值表
a 真 b 真 !a 假 !b 假 a&&b 真 a||b 真
真 假 假
假 真 假
假 真 真
真 假 真
假 假 假
真 真 假
逻辑运算符的优先次序 !(非) , &&(与),
优先次序:高(2) 结合方向:从右向左 (11) 从左向右
4.00, c=
6.00 s=
6.50
C语言程序设计
第四章 顺序程序设计
例4.11 从键盘输入大写字母,用小写字母输出
#include "stdio.h" void main() { char c1,c2; c1=getchar(); printf("%c,%d\n",c1,c1); c2=c1+32; printf("%c,%d\n",c2,c2); }
值为0 值为1 值为1 值为1 值为1 //(5>3)&&2||(8<(4-(!0))) 值为1 值为1
C语言程序设计
第五章 选择结构程序设计
复杂逻辑条件的表述
判断某一年year是否为闰年
判别闰年的条件(int year): 能被4整除: year%4==0 能被4整除但不能被100整除: (year%4==0)&&(year%100!=0) 能被400整除: year%400==0 综合起来: ((year%4==0)&&(year%100!=0))||year%400==0 优化语句: 此表达式为真时是闰年 (year%4==0&&year%100!=0)||year%400==0
第4章 生活垃圾的预处理

• 破碎段数是决定破碎工艺流程的基本指标,它主 要决定破碎废物的原始粒度和最终粒度。破 碎段 数越多,破碎流程就越复杂,工程投资相应增加 ,因此,在可能的条件下,应尽 量采用一段或两 段流程。
52
• (3)破碎流程 • 根据固体废物的性质、粒度大小,要求的破碎比 和破碎机的类型,每段破碎流程可以有不同的组 合方式。 • 单纯的破碎流程具有流程和破碎机组合简单、操 作控制方便、占地面积少等优点,但只适用于对 破碎产品粒度要求不高的场合。 •
45
• 选择破碎方法时,需视固体废物的机械强度,特 别是废物的硬度而定。对坚硬物采用挤 压破碎和 冲击破碎十分有效;对脆性废物则采用劈碎、冲 击破碎为宜。
• 一般破碎机都是由两种或两种以上的破碎方法联 合作用对固体废物进行破碎的,例如压碎和折断、 冲击破碎和磨碎等。
46
• 在需要破碎的废物中,大多数呈现脆性,废物在 断裂之前的变形很小。但也有一些需要破碎的废 物在常温下呈现较高的可塑性,这些废物用传统 的破碎机难以破碎,需要采取特殊措施。 • 例如,废橡胶在压力作用下能产生较大的塑性变 形,可利用其低温变脆的性能而有效地破碎。又 如破碎金属切削下来的金属屑,压力只能使其压 实成团,但不能碎成小片或小条、粉末,必须采 用特制的金属切削破碎机进行有效的破碎。
4
• 对于那些可能使压实设备损坏的废弃物不宜采用 压实处理,某些可能引起操作问题的废弃物,如 焦油、污泥或液体物料,一般也不宜作压实处理。
5
2 压实目的及操作原理
• • • • • 2.1目的 便于装卸、运输、贮存和填埋。 制取高密度的惰性块料、便于贮存填埋。 2.2操作原理 压实(压缩)是利用机械的方法增加固体废物的 聚集程度,增大容重和减小体积,便于装卸、运 输、贮存和填埋。
4第四章原油蒸馏

第二节 原油蒸馏工艺
第四章
原 油 蒸 馏
第二节 原油蒸馏工艺
一、原油蒸馏的原理
(2)循环回流:塔顶循环回流、中段循环回流
将从塔内抽出的液相冷却到某个温度后再送回塔中,物流在整个循环过程中 不发生相态变化,只在塔内、外循环流动,借助于换热器取走回流热。
缺点:A.降低了塔板的分离能力,在保证分馏精确度的情况下,需要在出入
(2)循环回流:
②中段循环回流:循环回流如果设在精馏塔的中部,称为中段循环回流。
主要作用:A.均匀塔内气、液两相负荷,缩小塔径;B.回收高温位热量。 常压精馏塔的中段循环回流取热量一般占全塔回流热的40%~60%。中段循 环回流进出口温差国外常采用60~80℃。对于有3~4个侧线的精馏塔,设两个中 段循环回流比较适宜;对只有1~2个侧线的精馏塔设一个中段循环回流为宜。中 段循环回流在两个侧线之间,进塔口一般在抽出口的上部,换热塔板一般采用2~
第四章 原 油 蒸 馏
第一节 原油预处理
二、原油脱盐、脱水的原理 2、化学脱水:
在原油乳状液中,加入少量的化学破乳剂,改变水滴表面保
护膜的稳定性,使微小的水滴聚集成较大的水滴,从而提高水
滴的沉降速度,加速分离。
第四章 原 油 蒸 馏
第一节 原油预处理
二、原油脱盐、脱水的原理
3、电-化学脱水:
电-化学脱水法的原理是借助于破乳剂和高压电场(电压一 般为15~35 千伏)的共同作用进行破乳化,高压电场使油中细
第四章
原 油 蒸 馏
第二节 原油蒸馏工艺
二、原油蒸馏装置的工艺流程
原油常减压工艺流程
常压塔底吹入过热水蒸气,以吹出重油中的轻组分,汽提后的常压重油自塔底抽 出送到减压加热炉。常压塔底温度一般控制在350~360 ℃。 减压炉部分: 常压重油经减压加热炉加热至400℃左右进入减压塔。 减压塔部分: 减压塔塔顶不出产品,设抽真空装置。塔顶出的不凝气和水蒸气(干式减压蒸馏
C++的PPT第4章(1)

类型标识符 函数名(void) {声明部分 语句 }
在调用无参函数时 ,主调函数并不将数据传 送给被调函数。无参函数一般用来执行一组固 定的操作。
定义有参函数的一般形式
类型标识符 函数名(形式参数列表) {声明部分 语句 }
int max(int x,int y) { int z; if(x>y) z=x; else z=y; return z; }
举例:
#include<iostream> using namespace std; void count( int x, int y ) {x=x*2; y = y * y ; cout << "x = " << x << '\t' ; cout << "y = " << y << endl ; } 运行结果: int main() x=6 y=16 { int a = 3 , b = 4 ; count( a, b ) ; // 调用函数 a=3 b=4 cout << "a = " << a << '\t' ; cout << "b = " << b << endl ; return 0; }
从用户角度来看,有两种不同的函数:库函数 和用户自定义函数。
库函数也称为标准函数,这是由c++系统提供的, 用户不必自己定义,当需要时直接调用即可。 (例如:sqrt()函数) 用户自定义函数是根据程序的需要由用户自行定义 的函数。
精品文档-密码学基础(范九伦)-第4章

第4章 Hash函数
实际应用中的Hash函数可分为简单的Hash函数和带密钥的 Hash函数。带密钥的Hash函数通常用来作为消息认证码(Message Authentication Code)。假定Alice和Bob有一个共享的密钥k, 通过该密钥可以产生一个Hash函数Hk。对于消息x,Alice和Bob 都能够计算出相应的消息摘要y=Hk(x)。Alice通过公共通信信道 将二元组(x,y)发送给Bob。当Bob接收到(x,y)后,它可以通过 检验y=Hk(x)是否成立来确定消息x的完整性。如果y=Hk(x)成立, 说明消息x和消息摘要y都没有被篡改。
第4章 Hash函数
下面给出带密钥的Hash函数族的定义。 定义4.1.4 一个带密钥的Hash函数族包括以下构成要素: (1) X:所有消息的集合(有限集或无限集); (2) Y:所有消息摘要构成的有限集合; (3) K:密钥空间,是所有密钥的有限集合; (4) 对任意的k∈K,都存在一个Hash函数Hk∈H,Hk: X→Y。 如果Hk(x)=y,则二元组(x,y)∈X×Y称为在密钥k下是有效 的。
第4章 Hash函数 生日攻击的思想来源于概率论中一个著名的问题——生日问
题。该问题是问一个班级中至少要有多少个学生才能够使得有两 个学生生日相同的概率大于1/2。该问题的答案是23。即只要班 级中学生的人数大于23人,则班上有两个人生日相同的概率就将 大于1/2。基于生日问题的生日攻击意味着要保证消息摘要对碰 撞问题是安全的,则安全消息摘要的长度就有一个下界。例如, 长度为40比特的消息摘要是非常不安全的,因为仅仅在220(大约 为一百万)个随机Hash函数值中就有50%的概率发现一个碰撞。所 以对于安全的消息摘要,现在通常建议可接受的最小长度为128 比特(此时生日攻击需要超过264个Hash函数值)。而实际使用的消 息摘要一般为160比特甚至更长。
第4章数据预处理

第4章数据预处理4数据预处理数据⽂件建⽴好之后,还需要对数据进⾏必要的预处理,因为不同的统计分析⽅法对数据结构的要求不同。
SPSS提供了强⼤的数据预处理能⼒——主菜单【转换】,可从变量和个案⾓度对数据进⾏全⾯的处理。
4.1变量的转换与运算4.1.1可视离散化离散化(Binning)的意思是把两个或多个连续值放在⼀个类⾥⾯,对所有连续值进⾏分组。
可视离散化指的是给⼀个度量变量创建⼀个它的分类变量(creating a categorical variable from a scale variable)。
具体操作是:1)打开Samples⽂件中的“demo.sav”数据⽂件,给度量变量income创建⼀个它的分类变量inccat2,inccat2序号变量分组为4类—低于$25,$25—$49,$50—$74,$75以上。
2)单击【转换】→【可视离散化】,出现“可视化封装”对话框,选择要离散的变量,单击继续。
3)设置“⽣成分割点”,分类数=分割点数量+14)点击“⽣成标签”,表格如图所⽰数据视图窗⼝的最后⼀列为income的分类变量inccat2。
4.1.2根据已存在的变量建⽴新变量(变量的计算)有时候,⼀个或两个连续变量都不符合正态分布,但通过它或他们计算(转换)出来的新的变量可能就接近正态分布。
计算新变量(computing new variables)的具体操作是:1)打开数据⽂件“demo.sav”,⽂件中有受试者“现在的年龄”和“已参加⼯作的年数”这两个变量,但却没有他们“开始⼯作的年龄”这个变量,以简单地计算现存的两个变量的差,把这两变量的差值作为⼀个新的变量为例。
营业收⼊-利润总额,营运成本2)单击【转换】→【计算变量】,在打开的“计算变量”对话框中设定“⽬标变量”,在“⽬标变量”对话框中输⼊⽬标变量的名称,单击“类型与标签”按钮,在弹出的“计算变量:类型和标签”对话框中设置新⽣成变量的变量类型与标签。
浙大版《c语言程序设计(第4版)》讲解
浙大版《c语言程序设计(第4版)》讲解《C语言程序设计》是国内C语言教材的重要书籍,高校中的计算机专业等都有教授。
浙大版《C语言程序设计(第4版)》是由著名计算机科学家袁春风编写的C语言教材,该书主要介绍了C语言基础、字符串、数组、指针、结构体、文件操作等内容。
本文将对该书内容做简要概括。
第一部分:C语言基础第一章:概述该章主要介绍了计算机语言的发展与演化,C语言的历史和主要特点,以及C语言的应用领域和发展前景。
第二章:初识C语言该章节主要介绍了C语言的基本概念,例如标识符、关键字、注释等。
并且结合一些简单的例子介绍了C语言的语法格式和执行规则。
第三章:数据类型该章节主要介绍了C语言的数据类型,包括整型、实型、字符型、布尔型等。
并且介绍了类型转换及其规则。
第四章:运算符与表达式该章节主要介绍了C语言的基本运算符及其优先级、结合性和作用。
并且通过实例来介绍了使用运算符和表达式的方法及注意事项。
第五章:分支结构该章节主要介绍了C语言中的分支结构,包括if、if-else、switch等,以及运用分支结构解决问题的方法和技巧。
第二部分:数组、字符串和指针第七章:数组该章节主要介绍了C语言中的数组,包括一维数组、二维数组等,并结合例子介绍了数组的定义、初始化、遍历、赋值等操作。
第八章:字符串该章节主要介绍了C语言中的字符串,包括字符串的定义、初始化、输入、输出等。
并且介绍了使用字符串解决问题的方法和技巧。
第九章:指针第三部分:函数与结构体该章节主要介绍了C语言中的结构体,包括结构体的定义、初始化、访问、结构体数组、结构体指针等。
并且介绍了结构体在程序中的应用。
第四部分:文件操作与其他第十二章:文件操作第十三章:其他语言特性与扩展该章节主要介绍了C语言扩展的特性,包括宏定义、预处理指令、变长参数等。
并且介绍了C语言与其他语言的异同点。
总结:《C语言程序设计(第4版)》是一本权威的C语言教材,该书系统全面地介绍了C语言的基本概念、语法格式、运算符、控制语句、数组、指针、函数、结构体、文件操作等方面的内容,让读者对C语言的掌握更加深入。
第四章 顺序结构
例 m.n
例 int a=1234; float f=123.456; char ch=‘a’; printf(“%8d,%2d\n”,a,a); printf(“%f,%8f,%8.1f,%.2f,%.2e\n”,f,f,f,f,f); printf(“%3c\n”,ch);
运行 1234,1234 结果: 123.456000,123.456000, 123.5,123.46,1.23e+02 a 例 static char a[]=“Hello,world!” printf(“%s\n%15s\n%10.5s\n%2.5s\n%.3s\n”,a,a,a,a,a); 运行结果:Hello,world! Hello,world! Hello Hello Hel
看下面程序的运行结果
main() {int a=1,b=2; b=a; printf("%d%d",a,b); }
? 如果把b=a; 换成a=b a=b; 程序的结果如何? 如果把b=a; 换成a=b;,程序的结果如何? b=a
4.2字符的输入输出 字符的输入输出
C语言无I/O语句,I/O操作由函数实现 #include <stdio.h> 或者: #include “stdio.h”
4.3格式输入输出 格式输入输出
格式输出函数
格式:printf(“格式控制串”,输出表) 功能:按指定格式向显示器输出数据
输出表:要输出的数据(以“,”分隔) 格式控制串:包含两种信息 格式说明: %[修饰符]格式字符 , 用于指定输出格式 普通字符或转义序列:原样输出 格式字符
格式字符:
d,i x,X o u c s e,E f g %%
输入分隔符的指定 一般以空格、TAB或回车键作为分隔符 其它字符做分隔符:格式串中两个格式符间字符
第四章数据预处理 ppt课件
✓发现两个相关的变量之间的变化模式,利用回归分析方 法所获得的拟合函数,帮助平滑数据及除去噪声。
y
Y1 Y1’
y=x+1
X1
x
39
3. 不一致数据的处理?
41
不一致数据
处理不一致数据的方式: 人工更正 利用知识工程工具:如,如果知道属性间的函数依赖 关系,可以据此查找违反函数依赖的值。 数据字典:在将不同操作性数据库中的数据进行集成 时,也会带来数据的不一致。如:一个给定的属性在不 同的数据库中可能具有不同的名字,如姓名在一个数据 库中为Bill,在另一个数据库中可能为B。对此,可根据 数据字典中提供的信息,消除不一致。
10
数据预处理的重要性
4)噪声数据:数据中存在着错误或异常(偏离期望值) ❖ 如:血压和身高为0就是明显的错误 ❖ 噪声数据的产生原因:
➢数据采集设备有问题; ➢在数据录入过程发生人为或计算机错误; ➢数据传输过程中出现错误; ➢由于命名规则或数据代码不同而引起的不一致。
11
数据预处理的常见方法
43
1. 数据集成?
44
37
如何处理噪声数据
2)聚类(Clustering):
✓相似或相邻近的数据聚合在一起形成各个聚类集合,而那些 位于聚类集合之外的数据对象,被视为孤立点。
✓特点:直接形成簇并对簇进行描述,不需要任何先验知识。
通过聚类分 析查找孤立 点,消除噪 声
38
如何处理噪声数据
3)计算机和人工检查结合
✓计算机检测可疑数据,然后对它们进行人工判断
32
练习:
已知客户收入属性income排序后的值(人民币元): 800,1000,1200,1500,1500,1800,2000, 2300,2500,2800,3000,3500,4000,4500, 4800,5000 要求:分别用等深分箱方法(箱深为4)、等宽分箱方法 (宽度为1000)对其进行平滑,以对数据中的噪声进行 处理。
第四章 语音信号处理技术
语音信号处理简称语音处理,是以语音学和数 字信号处理为基础而形成的一门综合性学科, 处理的目的是要得到一些语音参数以便高效的 传输或存储,或者通过处理的某种运算以达到 某种用途的要求,例如人工合成出语音,辨识 出说话者,识别讲话的内容等。 基础: 指导: 技术手段:
语音信号处理的发展
在语音波形片断拼接之前首先根据语义用psola算法对拼接单元的韵律特征进行调整使合成波形既保持了原始语音基元的主要音段特征又使拼接单元的韵律特征符合语义从而获得很高波形合成法参数合成法规则合成法基本信息波形特征参数语言的符号组合语音质量词汇量小500字以下大数千字无限合成方式pcmadpcmapclpclsp共振数码率9664kbits2496kbits5075bits1mbit可合成的语音长度15100s100s7分钟无限合成单元音节词组句子音节词组句子因素音节装置简单比较复杂复杂目前的语音合成方法实质上并未解决机器说话的问题本质上只是一个声音还原的过程
量化等级的划分
量化级越多,量化误差越小。每个采样点占用的 Bit就会越多,在语音信号处理中常用的有16bit、 8bit等量化。
xa(t)
xa(nT)
x(n)
采样
x1
xa1
量化
xk
xak xak+1
x(n)=Q[xa(nT)]
xk+1
xaL
xL xaL+1
量化后的信号值与原信号值之间的差值称为 量化误差(噪声) e(n)=x(n)- xa(nT) -/2 e(n) /2
建立数学模型:寻求一种可以表达一定物理状态 下量与量之间关系的数学表示。 语音生成系统: 在声门以下,负责产生激励振动——激励系统 从声门到嘴唇的呼吸通道是声道——声道系统 语音从嘴唇辐射出去,嘴唇以外——辐射系统 语音信号的分析,就是找出语音产生模型的各种 参数(语音的特征参数),应用于语音的编码、 识别和合成等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主调函数main() … f(); … f(); … 被调函数f()
}
函数的参数
• 函数可以有参数 • 函数定义时,定义形式参数表: 类型1 形参变量名1,类型2 形参变量名2… • 函数调用时传入实际参数: 数值1,数值2…
void f( ) { int i; for(i=0;i<10;i++) cout<<„-‟; cout<<endl; }
#include<iostream.h> void swap(int x,int y) { int temp=x; x=y; y=temp; } void main() { int a=2,b=10; swap (a,b);
}
• 引用经常用来做函数形参和函数的返回 值。(在运算符重载中也经常用到引用) 使用引用的目的在于 • 需要改变函数的实参值 • 大类型对象做函数参数 • 当一个函数返回一个引用时,它可以成 为左值。
运行结果: a=2,b=10 该函数的参数是按值传递 的,不对实参产生影响。 如果想要实参值改变,不 能用传值方法。
3.引用传递
• 引用类型
• 引用是给已知变量起一个别名 • 当建立引用时,程序用另一个变量的名字来对其进 行初始化。 int a,b=10; • 引用的声明形式: int &i=a; 类型 &引用名=变量名 i=5; i=b; • 对引用的操作实际是对其引用的变量的操作 •引用在声明时必须初始化 •引用一旦声明,就不能再成为其他变量的别 名 •引用与被引用的变量指向同一内存地址。
• 故:函数本身不对实参进行操作,只 是处理的实参的本地拷贝。也就是说, a 即使形参的值在函数中发生了变化, b 实参的值不会受到影响。
m n
#include<iostream.h> void swap(int x,int y) { int temp=x; x=y; y=temp; } void main() { int a=2,b=10; swap (a,b); cout<<“a=“<<a<<“,b=“<<b cout<< endl; }
• 在函数调用时创建形参变量,并用实参的 值对其初始化 • 函数执行结束,形参变量销毁。
int max(int a,int b) { int max; if(a>b) max=a; else max=b; return max; } void main() { int m,n,x; cin>>m>>n; x=max(m,n); cout<<x<<endl; }
void f(char c, int count) { int i; for(i=0;i<count;i++) cout<<c; cout<<endl; }
void main() { … f(„-„, 10); … f(„=„, 11); … }
函数的返回值
• 函数可以有返回值(其类型称为 函数类型) • 函数定义时,在函数类型处写 出应返回值的数据类型 • 函数若无返回值,则函数类 型出写void • 函数内部,在得到结果后用 return语句,将结果返回 • return 表达式; • return语句功能:函数执行 终止,并将返回值,返回给 调用程序。 • 函数调用时,函数执行完会产 生一个结果(可将这个结果作 为一个常量参与各种运算)
• 功能分解 • 复用
函数库 如:数学函数 自定义函数 主函数 main math.h
4.2 函数定义和调用
•在使用函数时,要先对函 数进行定义,确定它要实 现的功能。函数的使用就 是调用函数的过程。
4.2.1 函数定义
• 任何函数都由函数说明和函数体两部分 • 形式如下:
函数类型 函数名 (形式参数表) { 〈函数名〉 是一个有效 函数体; 〈函数类型〉 即函数的返回 c++标识符, 值的类型,如 } 其后面必须 果不需要函数
注:C++不允许在一个函 数体中再定义另一个函数
输入两整数:9 5 9 + 5 ---------14
9 5 ---------4 9 * 5 ---------45
void main { int m1,m2,sum; cout<<"输入两整数: " <<endl; cin>>m1>>m2; cout<<setw(10)<<m1<<endl; cout<<„+‟<<setw(9)<<m2<<endl; for(int i=0;i<10;i++) cout<<„-‟; cout<<endl; cout<<setw(10)<<m1+m2<<endl; cout<<setw(10)<<m1<<endl; cout<<„-‟<<setw(9)<<m2<<endl; for(int i=0;i<10;i++) cout<<„-‟; cout<<endl; cout<<setw(10)<<m1-m2<<endl; cout<<setw(10)<<m1<<endl; cout<<„*‟<<setw(9)<<m2<<endl; for(int i=0;i<10;i++) cout<<„-‟; cout<<endl; cout<<setw(10)<<m1*m2<<endl;
int max(int a,int b) { int max; if(a>b) max=a; else max=b; return max; }
int max(int a,int b) { if(a>b) return a; else return b; }
int max(int a,int b) { if(a>b) return a; return b; }
4.2.2 函数的说明
• 函数必须先定义后调用 • 若函数定义在后而调用在前,需要在调用前进 行“函数的说明”。 • 说明一个函数的格式如下 函数类型 函数名(函数参数表);
函数原型
其中,形参的变量名可以 省略。但要注意,函数说 明的内容应与函数的定义 相同。
例:
int max(int x,int y); int max(int,int);
• 一旦执行return语句,函数体return后面 的语句就不在执行 • 若函数类型为void,函数体中就不需要 return语句或者return的后面什么也没有。
void f (int n) { if(n<0)
return; … }
4.2.3 函数调用
• 调用函数的一般形式如下: 函数名(实际参数表) • 实际参数与形参相对应 • 实参要求:与形参个数相同,顺序对应,类型相容 • 实参根据情况可以是:常量、变量、表达式 在c++中,调用一个函数的方式可以有很多,例如: 1. 作为一个语句不使用返回值 max(3,4); 2. 作为表达式的一部分 int c=5*max(2,10); 3. 作为函数的实参 int c=0; c=max(max(c,4),10);
例:写一个函数,求两个 数的最大值
int max(int a,int b) { int max; if(a>b) max=a; else max=b; return max; }
void main() { int m,n,x; cin>>m>>n; x=max(m,n); cout<<“较大值”<<x<<endl; }
2. 地址传递
• 是指在函数定义时将形参说明成指针。
• 调用函数时就需要指定地址值形式的实 参。
• 地址传递方式的特点是可以通过改变形 参(指针)所指向的变量来影响实参。
#include<iostream.h> void swap(int *x,int *y) { int temp=*x; *x=*y; *y=temp; } void main() { int a=2,b=10; swap(&a,&b); cout << ”a=”< a<< “,b=”<< b << endl; }
Байду номын сангаас
}
void f( ) { for(int i=0;i<10;i++) cout<<„-‟; cout<<endl; } void main { int m1,m2,sum; cout<<"输入两整数: " <<endl; cin>>m1>>m2; cout<<setw(10)<<m1<<endl; cout<<„+‟<<setw(9)<<m2<<endl; f(); cout<<setw(10)<<m1+m2<<endl; cout<<setw(10)<<m1<<endl; cout<<„-‟<<setw(9)<<m2<<endl; f(); cout<<setw(10)<<m1-m2<<endl; cout<<setw(10)<<m1<<endl; cout<<„*‟<<setw(9)<<m2<<endl; f(); cout<<setw(10)<<m1*m2<<endl;