第 2章 C++程序设计基础
2.1 词 法 符 号
2.2 基 本 数 据 类 型
2.3 常量与变量
2.4 运算符和表达式
2.5 控 制 语 句
2.1 词 法 符 号
C++语言的字符集包括:
l 英文字母,A~Z,a~z
l 数字字符,0~9
l 特殊字符:空格 ! # % ^ & *
_( 下划线 ) + - = ~
< > / \ ' " ;,,( ) [ ]
{ } ∶
2.1.1 标识符标识符是程序员为命名程序中的一些实体而定义专用单词 。
C++语言中标识符的命名规则如下:
l 标识符是由英文字母 ( 包括大写和小写 ),数字和下划线组成,并且以字母和下划线开始,其后跟零个或多个字母,数字或下划线 。
注意:标识符不可以数字开始 。
l 标识符中大写和小写字母是有区别的 。
例如,A1和 a1是两个不同的标识符 。
l 标识符的长度是任意的,但有的编译系统仅识别前 32个字符 。
l 标识符不能和 C++语言的关键字同名 。
2.1.2 关键字关键字是一种有特殊用途的词法符号,
是 C++系统预定义的保留字,不能再用作其他用途 。
2.1.3 常量常量在运算过程中其值保持不变,可以直接用符号表示 。 常量包括数字常量,
字符常量,字符串常量 。
2.1.4 运算符运算符是 C++语言实现各种运算的符号,
包括 +,-,*,/等 。
运算符根据操作的对象个数不同,可以分为单目运算符,双目运算符和三目运算符 。
2.1.5 分隔符分隔符又称标点符号,是用来分隔单词或程序征文的,它可以表示某个程序实体的结束和另一个程序实体的开始 。 在 C++语言中,常用的分隔符以下几个:
( 1) 空格符:常用来作为单词与单词之间的分隔符 。
( 2) 逗号:用来作为多个变量之间的分隔符,或用来作为函数的多个参数之间的分隔符 。
( 3) 分号:仅用来作为 for循环语句中 for
关键字后面括号中三个表达式的分隔符 。
( 4) 冒号:用来作为语句标号与语句之间的分隔符,或 switch语句中关键字 case<整型常量 >与语句序列之间的分隔符 。
还有 ( ) 和 { } 也可以作为分隔符 。 这些分隔符不表示任何实际的操作,仅用于构造程序 。 由于 C++编译器将注释也当作空白对待,故注释也可用作分隔符 。
2.2 基 本 数 据 类 型
C++语言的数据类型大致可分为基本数据类型和非基本数据类型。基本数据类型包括整型、字符型、浮点型和布尔型。
非基本数据类型主要包括数组类型、结构体类型、共用体类型、指针类型和空类型等,如图 2-1所示。
数据类型基本数据类型整型基本整型短整型长整型字符型浮点型单精度型双精度型布尔型空类型构造数据类型数组类型指针类型结构体类型共用体类型图 2 - 1 C ++ 语言的数据类型数据类型决定了数据在内存中所占的空间大小,也确定了其表示范围。各种基本数据类型的长度和取值范围见表 2-1。
表 2 - 1 C++ 的基本数据类型数据类型 说明 长度(字节) 取值范围
bool 布尔型 tru e,f a lse
c h a r ( sig n e d c h a r ) 字符型 1 - 128 ~ 127
u n sig n e d c h a r 无符号字符型 1 0 ~ 255
sh o rt ( sig n e d sh o rt ) 短整型 2 - 32768 ~ 32767
u n sig n e d sh o rt 无符号短整型 2 0 ~ 65535
in t ( sig n e d in t ) 基本整型 4 - 2147483648 ~ 2147483647
u n sig n e d in t 无符号整型 4 0 ~ 4294967295
lo n g ( sig n e d lo n g ) 长整型 4 - 2147483648 ~ 2147483647
u n sig n e d lo n g 无符号长整型 4 0 ~ 4294967295
f lo a t 单精度型 4 - 3,4 × 10
- 38
~ 3,4 × 10
38
d o u b le 双精度型 8 - 1,7 × 10
- 308
~ 1,7 × 10
308
说明:
( 1) 单精度型 float和双精度型 double都属于浮点型 。
( 2) char型和各种 int型有时又统称为整数类型 。 因为字符型数据在计算机中是以
ASCII码形式表示,故其本质上是整数类型的一部分,也可以当作整数来运算 。
( 3)各种数据类型的长度是以字节为单位,1个字节等于 8个二进制位数。
2.3 常量与变量
2.3.1 常量
2.3.1.1 整型常量整型常量即整型常数,没有小数部分,
可以用十进制,八进制和十六进制 3种形式来表示 。
( 1) 十进制整型常量由 0~9组成,没有前缀,不能以 0开始 。
( 2) 八进制整型常量以 0为前缀,后跟由
0~7组成的整型常数 。
( 3) 十六进制整型常量以 0X或 0x为前缀,
后跟由 0~9和 A~F组成的整型常数 。
2.3.1.2 浮点型常量浮点型常量又称实型常量,是由整数部分和小数部分组成的,只能用十进制表示 。
浮点型常量有两种表示方法:小数表示法和科学计数法 。
( 1) 小数表示法:是由符号,数字和小数点组成 。
注意:必须有小数点 。
( 2) 科学计数法:是用指数形式来表示浮点型常量,即在小数表示法后面加上 E或 e
表示指数 。
注意,E或 e的前面必须要有数字,指数部分可正可负,但必须是整数 。
2.3.1.3 字符常量
C++中有两种字符常量,即一般字符常量和转义字符常量 。
1,一般字符常量一般字符常量是用一对单引号括起来的一个字符,其值为 ASCII码值 。
2,转义字符常用的转义字符见表 2-2。
表 2 - 2 C++ 的基本数据类型字符形式 A SC II 码值 功能
\ 0 0 x 0 0 NU L L
\ a 0 x 0 7 响铃
\ b 0 x 0 8 退格 ( Ba c k sp a c e 键 )
\ t 0 x 0 9 水平制表( T a b 键)
\ f 0 x 0 c 走纸换页
\ n 0 x 0 a 回车换行
\ v 0 x 0 b 垂直制表
\ r 0 x 0 d 回车 ( 不换行 )
\ \ 0 x 5 c 字符,\,
\ ’ 0 x 2 7 单引号
\,0 x 2 2 双引号
\? 0 x 3 f 问号
\ ddd 0ddd 1 ~ 3 位八进制数所代表的字符
\ x h h 0 x h h 1~ 2 位十六进制数所代表的字符
2.3.1.4 字符串常量字符串常量是用一对双引号括起来的字符序列 。
在 C++中,字符串常量和字符常量是不同的 。
字符串常量是由双引号括起来的若干个字符,
这些字符在内存中连续存储,并在最后加上字符 '\0'作为字符串结束的标志 。
注意,
不能将一个字符串常量赋给字符常量 。
H E L L O \ 0
图 2 - 2 字符串,HE L L O,在内存中的存放示意图
2.3.1.5 符号常量在 C++中,可以用一个标识符来表示一个常数,这个标识符就是符号常量 。
C++语言提供了两种定义符号常量的方法:
1,用 const语句定义符号常量其一般格式为:
const 数据类型 符号常量 =表达式;
注意:在定义符号常量时必须进行初始化,
否则将出现编译错误 。
2,用 #define语句定义符号变量其一般格式为:
#define 常量名 常量值注意,#define语句的最后不允许加分号
,;,。
2.3.2 变量变量是指在程序运行过程中其值可以改变的量 。 变量是有名字的,在内存中占据一定的存储单元 。 C++语言中使用变量前,
必须先对它的数据类型进行说明,
2.3.2.1 变量的命名变量的命名要遵循 C++语言中标识符的命名规定:
( 1) 系统规定的关键字不可再作为变量名 。
( 2) 第一个字符必须是字母或下划线,后跟字母,数字或下划线,中间不能有空格 。
( 3) 命名变量应尽量做到,见名知意,,
这样有助于记忆,增加可读性 。
( 4) 在命名变量时,大小写字母是不一样的 。 例如,X1和 x1是两个不同的变量 。 习惯上用小写字母命名变量 。
2.3.2.2 变量的定义变量定义的一般格式为:
数据类型 变量 1,变量 2,……
在定义变量时,必须注意变量类型的选择 。
应该保证该变量中将要存储的值不突破该变量类型所能表示的最大值 。 当然,也不能因此就将每个变量都声明成表示范围最大的类型,否则会白白浪费存储空间 。
2.3.2.3 变量赋值与初始化在使用已定义的变量前,要用赋值运算符
,=”对它进行赋值 。
2.4 运算符和表达式
2.4.1 运算符
C++语言定义了丰富的运算符 。 这些运算符按所要求的操作数的多少,可分为单目运算符,双目运算符和三目运算符 。 按运算符的运算性质又可分为算术运算符,关系运算符,逻辑运算符等 。
学习运算符时,要注意以下几点:
( 1) 运算符的功能 。
( 2) 与操作数的关系,这里要注意运算符要求操作数的个数和类型 。
( 3) 运算符的优先级别 。
( 4) 运算符的结合性 。
表 2-3列出了常用运算符的优先级,功能和结合性 。
表 2 - 3 C + + 中常用运算符的优先级、功能和结合性优先级 运算符 功能说明 结合性
( ) 改变优先级
:,作用域运算符
[ ] 数组下标运算符
,―> 成员选择
1
,* ―> * 成员指针选择左结合
* 指针运算符
& 取地址
s i zeo f 求内存字节数
! 逻辑求反
~ 按位求反
++ -- 增 1,减 1 运算符
2
+ - 取正、取负运算符右结合
3 * / % 乘法、除法、取余 左结合
4 + - 加法、减法 左结合
5 << >> 左移位、右移位 左结合
6 < > <= >= 小于、大于、小于 等于、大于等于左结合
7 == != 等于、不等于 左结合
8 & 按位与 左结合
9 ^ 按位异或 左结合
10 | 按位或 左结合
11 && 逻辑与 左结合
12 || 逻辑或 左结合
13?,条件运算符 右结合
14
= += - = * =
/ = %=
<< = >> = &=
^= | =
赋值运算符 右结合
15,逗号运算 符 左结合
2.4.1.1 算术运算符
C++语言中的算术运算符包括基本算术运算符和增 1,减 1运算符 。
1,基本算术运算符基本算术运算符有,+( 取正或加 ),-
( 取负或减 ),*( 乘 ),/ ( 除 ),%
( 取余 ) 。 其中 +( 取正 ),- ( 取负 ) 是单目运算符,其余是双目运算符 。
必须注意的是,/”运算符,当它的两个操作数都是整数时,其计算结果应是除法运算后所得商的整数部分 。 例如,5/2的结果是 2。
取余运算符 ( %) 用来计算两个整数相除后的余数 。 例如,5% 4的结果是 1,4% 2的结果是 0。
注意:要求取余运算符 ( %) 的两个操作数必须是整数或字符型数据 。
2,增 1、减 1运算符增 1,减 1运算符都是单目运算符,这两个运算符都有前置和后置两种形式 。 前置形式是指运算符在操作数的前面,后置是指运算符在操作数的后面 。
无论是前置还是后置,
操作数和运算符组成的表达式不同,最后的结果也并不相同 。
2.4.1.2 关系运算符关系运算符用于比较两个操作数的大小,
其比较的结果是一个布尔型的值 。 当两个操作数满足关系运算符指定的关系时,表达式的值为 true,否则为 false。
在 C++语言中,关系运算符都是双目运算符,共有 6个,<( 小于 ),<=( 小于或等于 ),>( 大于 ),( 大于或等于 ),= =
( 等于 ),!=( 不等于 ) 。 其中前 4种和后
2种属于不同的优先级,前 4种的优先级高于后 2种 。
C++语言中 true等于 1,false等于 0。
使用关系运算符时还应注意以下两点:
( 1) 不要把关系运算符,= =”误用为赋值运算符,=”。
( 2) 数学关系式子 。
2.4.1.3 逻辑运算符逻辑运算符共有 3个,1个单目运算符 !( 逻辑求反 ),2个双目运算符 &&( 逻辑与 )
和 ||( 逻辑或 ) 。 其中逻辑与的优先级比逻辑或高 。
逻辑运算的结果是逻辑值 。 参与逻辑运算的操作数可以是任一基本数据类型的数据,
在进行判断时,系统将视非零值为真,零为假 。
注意:关系运算和逻辑运算的结果若为真,
其值为 1;若为假,其值为 0。
2.4.1.4 赋值运算符
C++中的赋值运算符分为两种:简单赋值运算符和复合赋值运算符 。
1,简单赋值运算符简单赋值运算符有,=”。 其表达式的一般形式为:
变量 = 表达式
2,复合赋值运算符复合赋值运算符由一个数值型运算符和基本赋值运算符组合而成,共有 10个,分别为,+=,- =,*=,/=,%=,<<=,>>=、
&=,^=,|=。
复合赋值表达式的一般形式为:
变量 #= 表达式该表达式等价于:
变量 = 变量 # 表达式
2.4.1.5 位运算符
C++语言提供了 6个位运算符,~( 按位求反 ),&( 按位与 ),|( 按位或 ),^
( 按位异或 ),<<( 右移位 ),>>( 左移位 ) 。 其中 ~( 按位求反 ) 是单目运算符,
其余都是双目运算符 。
2.4.1.6 其他运算符
1,条件运算符条件运算符,?:”是一个三目运算符,其使用的一般形式为:
表达式 1? 表达式 2:表达式 3
2,逗号运算符由逗号运算符构成的表达式称为逗号表达式,其一般形式为:
表达式 1,表达式 2,…,表达式 n
注意:逗号运算符,,,的优先级最低 。
2.4.2 表达式
C++语言中常见的表达式有:算术表达式,
关系表达式,逻辑表达式,条件表达式,
逗号表达式,赋值表达式等 。
在书写表达式时,必须注意运算符的优先级与结合性,确保列出的表达式的实际求值顺序与自己所要求的一致 。 必要时可加括号以便于理解,甚至改变优先级 。
2.4.2.1 算术表达式
【 例 2.1】 算术表达式的计算 。
#include<iostream.h>
void main()
{
int i=4,j=5,k=6;
int x;
x=i+j-k;
cout<<"x="<<x<<endl;
//输出 x=3
x=(i+j)*k/2;
cout<<"x="<<x<<endl;
//输出 x=27
x=25*4/2%k;
cout<<"x="<<x<<endl;
//输出 x=2
}
【 例 2.2】 增 1表达式的计算 。
#include<iostream.h>
void main()
{
int i,j,k;
i=4;
j=i++;
cout<<"i="<<i<<'\t'<<"j="<<j<<endl;
i=4;
k=++i;
cout<<"i="<<i<<'\t'<<"k="<<k<<endl;
double x=2.5;
cout<<x-(x+0.5)*2<<endl;
//操作数类型不相同
}
运行程序后,输出结果为:
i=4 j=4
i=5 k=5
-3.5
2.4.2.2 关系表达式与逻辑表达式
【 例 2.3】 关系表达式与逻辑表达式的计算
#include<iostream.h>
void main()
{
int x=3,y=5,z;
z=(x>0)||(y<10);
cout<<"z="<<z<<endl;
//输出 z=1,表示 true
z=(x= =0)&&(y<10);
cout<<"z="<<z<<endl;
//输出 z=0,表示 false
z=!(x= =3);
cout<<"z="<<z<<endl;
//输出 z=0,表示 false
}
2.4.2.3 赋值表达式赋值表达式的作用就是把赋值运算符右边表达式的值赋给左边的变量 。
【 例 2.4】 分析下面程序的输出结果
#include<iostream.h>
void main()
{
int m=3,n=4,k;
k=m++ - --n;
cout<<"k="<<k<<endl;
char x='m',y='n';
int z;
z=y<x;
cout<<"z="<<z<<endl;
z=(y= =x+1);
cout<<"z="<<z<<endl;
z=('y'!='Y');
cout<<"z="<<z<<endl;
int a=1,b=3,c=5;
a+=b*=c-=2;
cout<<"a="<<a<<','<<"b="<<b<<','<<"c="<<
c<<endl;
}
运行程序后,输出结果为:
k=0
z=0
z=1
z=1
a=10,b=9,c=3
2.4.2.4 表达式中数据类型的转换表达式中数据类型的转换有两种:隐含转换和强制转换 。
1,隐含转换当操作数的类型不一致时,表达式的类型就取决于操作数中类型最高的操作数类型,
C++语言将自动进行类型转换,隐含转换的示意图如图 2-3所示 。
d o u b le f lo a t
lo n g
u n s ig n e d
in t c h a r,s h o rt
图 2 - 3 隐含转换示意图
2,强制转换强制转换的作用是将表达式的类型强制地转换成指定的数据类型 。 其一般形式为:
数据类型 ( 表达式 )

( 数据类型 ) 表达式
2.5 控 制 语 句语句是表达算法命令或编译指示的基本语言单位,C++源程序就是由各种语句组成的。
C++语言提供了丰富的语句,大致可分为:表达式语句,复合语句,选择语句,
循环语句和转移语句 。
2.5.1 表达式语句表达式语句是由一个表达式加上分号组成 。
2.5.2 复合语句复合语句也称块语句,是由两条或两条以上的语句组成,并用,{}”括起来的语句 。
注意:在复合语句的右括号后不再需要分号 。
2.5.3 选择语句选择语句是对给定的条件进行判定,并根据判定结果决定执行哪些操作,不执行哪些操作 。 C++语言中提供的选择语句有 if语句和 switch语句 。
2.5.3.1 if语句
if语句用来有条件地执行某一语句系列 。 If
语句主要有 3种语法格式:
( 1) if( 表达式 )
{
语句;
}
( 2) if( 表达式 )
{
语句 1;
}
else
{
语句 2;
}
( 3) if( 表达式 1) <语句 1>
else if( 表达式 2) <语句 2>
else if( 表达式 3) <语句 3>

elseif( 表达式 n) <语句 n>
else <语句 n+1>
其中的表达式一般是关系表达式,并且表达式必须用 ( ) 括起来 。 语句可以是一条语句,也可以是多条语句 。 如果只有一条语句,则 {}可以省略 。
【 例 2.5】 if语句的应用 。
#include<iostream.h>
void main()
{
float score;
cout<<"Please enter your score:"<<endl;
cin>>score;
if (score>=60)
cout<<"Passed!"<<endl;
if (score<60)
{
cout<<"No passed!"<<endl;
cout<<" You should do your best to
study"<<endl;
}
}
运行程序后,屏幕上输出显示:
Please enter your score:
提示用户输入成绩,当用户输入成绩信息后,程序会根据用户的输入,输出显示相应的信息 。 如输入 70,则显示:
Passed!
【 例 2.6】 利用 if… else语句改写例 2.5
#include<iostream.h>
void main()
{
float score;
cout<<"Please enter your score:"<<endl;
cin>>score;
if (score>=60)
cout<<"Passed!"<<endl;
else
{
cout<<"No passed!"<<endl;
cout<<" You should do your best to
study"<<endl;
}
}
【 例 2.7】 比较两个数的大小 。
#include<iostream.h>
void main()
{
int x,y;
cout<<"Please input x,y:"<<endl;
cin>>x>>y;
if (x!=y)
if (x>y)
cout<<"x>y"<<endl;
else
cout<<"x<y"<<endl;
else
cout<<"x=y"<<endl;
}
2.5.3.2 switch语句
switch语句又称开关语句,其语法格式为:
switch( 表达式 )
{
case 常量表达式 1:语句 1;
case 常量表达式 2:语句 2;

case 常量表达式 n:语句 n;
default:语句 n+1;
}
其中,switch,case和 default是关键字,常量表达式通常为整型数值和字符常量,语句 1~语句 n是由 1条或多条语句组成的语句段,也可以是空语句 。 如果是多条语句,
可以不用花括号 {}括起来 。
【 例 2.9】 根据考试成绩的等级给出百分制分数段。
#include<iostream.h>
void main()
{
char grade;
cout<<"请输入成绩,"<<endl;
cin>>grade;
if (grade>='a' && grade<='z')
grade- =32;
//若输入小写字母,则转化为大写字母
switch( grade)
{
case 'A',cout<<"90~100"<< endl;
case 'B',cout<<"80~89"<< endl;
case 'C',cout<<"70~79"<< endl;
case 'D',cout<<"60~69"<< endl;
case 'E',cout<<"60分以下 "<< endl;
}
}
运行程序后,屏幕上将显示字符串“请输入成绩:”。假设输入 B后,将输出结果:
80~89
70~79
60~69
60分以下显然,这样的输出结果是不符合原意的,
原因就在于没有用 break语句作为每个 case
的结束语句。现修改例 2.9程序如下:
switch( grade)
{
case 'A',cout<<"90~100"<< endl;break;
case 'B',cout<<"80~89"<< endl; break;
case 'C',cout<<"70~79"<< endl; break;
case 'D',cout<<"60~69"<< endl; break;
case 'E',cout<<"60分以下 "<< endl; break;
}
再运行程序,然后输入成绩 B,将输出结果:
80~89
2.5.4 循环语句
C++语言提供了 3种循环语句,while循环语句,do-while循环语句和 for循环语句 。
2.5.4.1 while循环语句
while循环语句的语法形式为:
while( 表达式 )
循环体 ;
其中,while是关键字,表达式可以是 C++
语言中任何合法的表达式,它用来判断执行循环体的条件,根据循环条件决定是否执行循环体 。 循环体由语句组成,可以是一条语句,也可以是多条语句 。
【 例 2.10】 编程计算 1~100之和 。
#include<iostream.h>
void main()
{
int i=1,sum=0;
while(i<=100)
{
sum+=i;
i++;
}
cout<<"sum="<<sum<<endl;
}
程序运行后,输出结果:
5050
注意:在使用循环语句时,一定要设法改变循环的终止条件,使之在有限次循环之后能满足循环终止条件而结束循环 。
2.5.4.2 do-while循环语句
do-while循环语句的语法形式为:
do
…… //循环体部分
while(表达式 );
表达式循环体真假图 2 - 5 do - w hile 循环执行过程
do-while循环语句与 while循环语句的区别在于,do-while循环语句首先执行循环体,再求表达式的值 。 如果其值非 0,则再次执行循环体,直至表达式的值为零;而 while语句首先求表达式的值,再按其值为零或非零决定是否执行循环体 。 因此,do-while循环语句中的循环体至少执行一次 。
注意,do-while循环语句最后的分号不可缺少。
【 例 2.11】 利用 do-while循环语句改写例
2.10。
#include<iostream.h>
void main()
{
int i=1,sum=0;
do
{
sum+=i;
i++;
}
while(i<=100)
cout<<"sum="<<sum<<endl;
}
2.5.4.3 for循环语句
for循环语句的语法形式为:
for(表达式 1;表达式 2;表达式 3)
循环体;
其中,表达式 1通常用来给循环变量赋初值;
表达式 2通常是关系表达式或逻辑表达式,
一般用来设置循环的条件;表达式 3用来在每次循环之后修改循环变量的值 。
【 例 2.12】 利用 for循环语句改写例 2.10。
#include<iostream.h>
void main()
{
int i,sum=0;
for(i=1; i<=100; i++)
sum+=i;
cout<<"sum="<<sum<<endl;
}
在使用 for循环语句时,应该注意下列几种情况:
( 1) for语句中的 3个表达式可以没有 。 但必须注意每个表达式后的分号不能省略 。
此时 for循环语句的形式为:
for(;;)
这时在循环体内必须有其他控制循环执行的语句,否则会形成死循环 。
( 2) 表达式 1如果没有或不是用来给循环变量赋初值,则应在 for语句前给循环变量赋初值 。
( 3) 表达式 2如果没有,则在 for语句循环体内应有其他控制循环执行的语句,否则会形成死循环 。
( 4) 表达式 3如果没有或不是用来修改循环变量的值,则应在 for语句循环体内设置相应的语句 。
2.5.5 转移语句
2.5.5.1 goto语句
goto语句语法格式为:
goto 语句标号;
goto语句的作用是使程序转移到语句标号所标示的语句处继续执行 。
2.5.5.2 break语句
break语句的语法格式如下:
break;
break语句可用在以下两种情况:
( 1) break语句用在 switch语句中,其功能是退出 switch语句 。
( 2) break语句用在循环语句的循环体中,
其功能是退出循环语句 。
【 例 2.14】 从键盘上输入 10个整数,若是正整数则求和,若输入 0则终止程序 。
#include<iostream.h>
void main()
{
int num,sum=0;
cout<<"Please input number:"<<endl;
for(int i=0; i<=9;i++)
{
cin>>num;
if(num= =0)
break;
sum+=num;
}
cout<<"sum="<<sum<<endl;
}
2.5.5.3 continue语句
continue语句的语法格式为:
continue;
continue语句只能用在循环语句的循环体内 。 在循环执行的过程中,如果遇到
continue语句,程序将结束本次循环,接着开始下一次循环 。
【 例 2.15】 从键盘上输入 10个整数,若是正整数则求和,若是负整数则不进行计算,
继续输入数据,若输入 0则终止程序 。
#include<iostream.h>
void main()
{
int num,sum=0;
cout<<"Please input number:"<<endl;
for(int i=0; i<=9;i++)
{
cin>>num;
if(num= =0) break;
if(num<0) continue;
sum+=num;
}
cout<<"sum="<<sum<<endl;
}