版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章程序设计初步3.1面向过程的程序设计和算法3.2C++程序和语句3.3
C++的输入与输出3.4编写顺序结构的程序3.5
选择结构和if语句3.6多分支选择结构和switch语句3.7
编写选择结构的程序3.8
循环结构和循环语句3.9
循环的嵌套3.10break语句和continue语句3.11
编写循环结构的程序3.1.1算法的概念一个面向过程的程序应该包括两部分内容:⑴对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构。⑵对操作的描述。即操作步骤,也就是算法。对于面向过程的程序可以用下面的公式表示:3.1面向过程的程序设计和算法程序=算法+数据结构
算法是处理问题的一系列步骤,它必须具体指出在执行时每一步应当怎样做。程序中的操作语句就是算法的具体体现。3.1.2算法的表示⑴自然语言。用中文或英文等自然语言描述算法。⑵流程图。例函数
其流程图为⑶伪代码。介于自然语言和计算机语言之间的文字和符号来描述算法。⑷计算机语言。用计算机语言描述算法,就是计算机程序。
流程图是目前全球软件开发领域使用最广泛的算法表示工具,它通过一些严格定义图形的组合来表示算法的步骤以及数据变化的走向。用图形表示算法,直观形象,易于理解。
流程图符号:起止框输入输出框处理框连接点流程线判断框注释框例:求的值。解:定义变量:M—累乘积
N—代表一项的分母算法描述:自然语言+伪代码算法:⑴M←1,N←1⑵M←M×⑶N←N+1⑷如果N≤100,转⑵否则,转⑸⑸输出M的值⑹结束1N循环开始结束M←1N←1M←M×N←N+11N输出M的值N≤100TF处理框流程线判断框用流程图描述3.2C++程序和语句#include<iostream>usingnamespacestd;inta=3;intmain(){floatb;b=4.5;cout<<a<<b;return0;}一个完整的C++程序:
程序应该包括数据描述(由声明语句来实现)和数据操作(由执行语句来实现)。数据描述主要包括数据类型的声明、函数和变量的定义、变量的定义和初始化等。数据操作的任务是对已提供的数据进行处理。C++程序中最小的独立单元是语句。语句可分为以下4种:⑴声名语句例如:inta,b;⑵执行语句①控制语句,完成一定的控制功能。C++有9种控制语句,即
if()~else~for()~while()~do~while()switchcontinuebreakgotoreturn②函数和流对象调用语句。例如:max(a,b);cout<<x<<endl;③表达式语句。在一个表达式的后面加上一个分号构成的语句。例如:i=i+1;
一个语句必须在最后出现分号,分号是语句不可缺少的一部分。⑶空语句只有一个分号的语句,它什么也不做。例如:;⑷复合语句用{}括起来的一些语句为复合语句。例如:
{z=x+y;if(z>100)z=z-100;cout<<z;}注意:复合语句中最后一个语句的分号不能省略。
输入和输出并不是C++语言中的正式组成成分。C和C++本身都没有为输入和输出提供的专门的语句结构。在C语言中,输入和输出是通过调用scanf函数和printf函数来实现的;在C++语言中是通过调用输入输出流库中的流对象cin和cout来实现。也就是说输入输出不是由C++本身定义的,而是在编译系统提供的I/O库中定义的。3.3C++的输入与输出
C++的输出和输入是用“流”的方式实现的。“流”是指来自设备或传给设备的一个数据流。数据流是由一系列字节组成,这些字节是按进入“流”的顺序排列的。cout是输出流对象名,cin是输入流对象名,“<<”是流插入运算符,作用是将需要输出的内容插入到输出流中,默认的输出设备是显示器;“>>”是流提取运算符,作用是从默认输入设备(一般为键盘)的输入流中提取若干字节送到计算机内存中指定的变量。
有关流对象cout、cin和流运算符的定义等信息都存放在C++的输入输出流文件中,因此要在程序使用cout、cin和流运算符,就必须使用预处理命令把头文件iostream包含到本文件中,即
#include<iostream>
虽然cout和cin不是C++本身提供的语句,不过为了叙述方便,常将cin和“>>”实现输入的语句称为输入语句或cin语句,将cout和“<<”实现输出的语句称为输出语句或cout语句。3.3.1输入流与输出流的基本操作cout语句的一般格式:
一个cout语句可以分写成若干行,如
cout<<“ThisisaC++program.”<<endl;也可写成多个cout语句,即cout<<“Thisis”;cout<<“aC++”;cout<<“program.”;cout<<endl;可写成
cout<<“Thisis”<<“aC++”<<“program.”<<endl;cout<<表达式1<<表达式2<<……<<表达式n;
注意:不能用一个插入运算符“<<”插入多个输出项,如下面写法是错误的:
cout<<a,b,c;
用cout输出时,用户不必通知计算机按何种类型输出,系统会自动判别输出数据的类型,使输出的数据按相应的类型输出。cin语句的一般格式:
与cout语句类似,一个cin语句可以分写成若干行。如
cin>>a>>b>>c>>d;
cin>>表达式1>>表达式2>>……>>表达式n;可写成
cin>>a>>b>>c>>d;也可写成多个cin语句,即cin>>a;cin>>b;cin>>c;cin>>d;以上情况均可从键盘输入:1234↙也可分多行输入数据:1↙
23↙
4↙
在用cin输入时,系统会根据变量的类型从输入流中提取相应长度的字节。如
charc1,c2;inta;floatb;cin>>c1>>c2>>a>>b;如果输入:123456.78↙相当于:c1=‘1’,c2=‘2’,a=34,b=56.78
系统把空格作为数据间的分隔符,不予提取。因此,不能用cin语句把空格字符和回车换行符(或任何其他键盘上的字符)输入给字符变量。也可按下面格式输入:123456.78↙注意:在输入数据时,要按相应的格式输入,否则容易出错。3.3.2在输入流与输出流中使用控制符控制符
作用dec数值数据采用十进制hex数值数据采用十六进制oct数值数据采用八进制setfill(c)填充字符c,c可以是字符常量或变量setprecision(n)设置浮点数的精度setw(n)设置字段宽度为n位setiosflags(ios::fixed)设置浮点数以固定的小数位数显示setiosflags(ios::scientific)设置浮点数以科学记数法显示setiosflags(ios::left)输出数据左对齐setiosflags(ios::right)输出数据右对齐setiosflags(ios::skipws)忽略前导的空格setiosflags(ios::uppercase)数据以16进制形式输出时字母以大写表示setiosflags(ios::lowercase)数据以16进制形式输出时字母以小写表示setiosflags(ios::showpos)输出正号时给出“+”号setiosflags(ios::showpoint)显示小数点注意:如果使用控制符,在程序单元开头除了要加iostream头文件外,还要加iomanip头文件。
十六进制、八进制和十进制这三个控制符都是在iostream定义的,所以无需加入头文件iomanip。例:输出双精度数。
doublea=123.456789012345;cout<<a;cout<<setprecision(9)<<a;cout<<setprecision(6);cout<<setiosflags(ios::fixed)<<a;cout<<setprecision(8)<<a;⑥cout<<setiosflags(ios::scientific)<<a;⑦cout<<setprecision(4)<<a;123.457123.456789恢复默认精度6123.456789123.456789011.23456789e+0021.2346e+002例:输出整数。
intb=123456;cout<<b;cout<<hex<<b;cout<<setiosflags(ios::uppercase)<<b;cout<<setw(10)<<b<<‘,’<<b;cout<<setfill(‘*’)<<setw(10)<<b;⑥cout<<dec<<setiosflags(ios::showpos)<<b;1234561e240-----1E240,1E240*****1E240+1234561E240例各行小数点对齐
#include<iostream>#include<iomanip>usingnamespacestd;intmain(){doublea=123.456,b=3.14159,c=-3214.67;cout<<setiosflags(ios::fixed)<<setiosflags(ios::right)<<setfill(‘*’)<<setprecision(2);cout<<setw(10)<<a<<endl;cout<<setw(10)<<b<<endl;cout<<setw(10)<<c<<endl;return0;}输出如下:****123.46******3.14**-3214.67
在使用setw(n)时要注意:①如果一个输出量需要比setw(n)确定的字符数更多的字符,则该输出量将使用它所需要的宽度。例如:
floatamount=3.14159;cout<<setw(4)<<amount<<endl;
其运行结果为3.14159。它并不按4位宽度,而是按实际宽度输出。②setw(n)仅仅影响下一个数值输出,换句话说,使用setw设置的间隔方式并不保留其效力。例如:
cout<<setw(8)<<10<<20<<endl;
运行结果为
------1020
运行结果中的下划线表示空格整数20并没有按宽度8输出。setw()的默认宽度为0,意思是按输出数值表示的宽度输出,所以20就紧挨10了。3.3.3用getchar和putchar函数进行字符的输入和输出
除了用cin和cout语句输入和输出字符外,C++还保留了C语言中用于输入和输出单个字符的函数,常用的有getchar和putchar函数。1.putchar函数(字符输出函数)putchar函数的作用是向终端输出一个字符。putchar(c);例如
例输出单个字符。
#include<iostream>usingnamespacestd;intmain(){chara,b,c;a=‘B’;b=‘O’;c=‘Y’;putchar(a);putchar(b);putchar(c);putchar(‘\n’);putchar(66);putchar(79);putchar(89);putchar(10);return0;}输出如下:BOYBOY可以看出,putchar不但可以输出普通字符,还可以输出转义字符。2.getchar函数(字符输入函数)getchar函数的作用是从终端(或系统隐含指定的输入设备)输入一个字符。getchar函数没有参数,其一般形式为getchar()例输出单个字符。
#include<iostream>usingnamespacestd;intmain(){charc;c=getchar();putchar(c+32);putchar(‘\n’);return0;}输入:A↙输出:a
注意:getchar函数只能接收一个字符。getchar函数所得到的字符可以赋给一个字符变量或整型变量,也可以不赋给任何变量,作为表达式的一部分。例如putchar(getchar()+32);也可用cout输出getchar函数得到字符的ASCII的值:cout<<getchar();输出结果为97,因为getchar()读入的是字符的ASCII码。cout<<(c=getchar());它的输出结果为字母’a’,因为输出的是字符变量c的值。输入:a↙3.3.4用scanf和printf函数进行输入和输出
在C语言中用scanf函数进行输入,用printf函数进行输出。C++保留了这一用法。scanf函数一般格式为printf函数一般格式为scanf(格式控制,输入列表)printf(格式控制,输出列表)例用scanf和printf函数进行输入和输出。#include<iostream>usingnamespacestd;intmain(){inta;floatb;charc;scanf(“%d%c%f”,&a,&c,&b);printf(“a=%d,b=%f,c=%c\n”,a,b,c);return0;}运行情况如下:12A67.98↙a=12,b=67.980003,c=A3.4编写顺序结构的程序
程序的基本控制结构有三种:顺序结构、选择结构和循环结构。其中顺序结构的程序是最简单的。这种结构的程序是从上到下顺序执行各语句。即先执行A语句,再执行B语句。AB
例求一元二次方程式的根。a,b,c的值在运行时由键盘输入。它们的值满足。众所周知:这就是求x1,x2的算法。根据求解算法可以编写C++程序如下:#include<iostream>#include<cmath>usingnamespacestd;intmain(){floata,b,c,x1,x2;cin>>a>>b>>c;x1=(-b+sqrt(b*b-4*a*c))/(2*a);x2=(-b-sqrt(b*b-4*a*c))/(2*a);cout<<“x1=”<<x1<<endl;cout<<“x2=”<<x2<<endl;return0;}运行情况如下:4.58.82.4↙x1=-0.327612x2=-1.177943.5选择结构和if语句if语句是用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。3.5.1
if语句的3种形式1.if(表达式)语句例:if(x>y)cout<<x;if(表达式)语句1else语句2例:if(x>y)cout<<x;elsecout<<y;3.if(表达式1)语句1
elseif(表达式2)语句2
elseif(表达式3)语句3
…
else
语句n例:if(number>500)cost=0.15;elseif(number>300)cost=0.10;elseif(number>100)cost=0.075;elseif(number>50)cost=0.05;elsecost=0;说明:
⑴3种形式的if语句都是由一个入口进来,经过对“表达式”的判断,分别执行相应的语句,最后归到一个共同的出口。这种形式的程序结构称为选择结构。
⑵3种形式的if语句中在if后面都有一个用括号括起来的表达式,它是程序编写者要求程序判断的“条件”,一般是逻辑表达式或关系表达式。
⑶
在if语句中,每个内嵌语句都要有一个分号。else是if语句中的子句,不能作为独立的语句单独使用,必须与if配对使用。
⑷
在if和else后面可以只含一个内嵌的语句,也可以有多个语句,此时用花括号“{}”将几个语句括起来成为一个复合语句。3.5.2
if语句的嵌套
在if语句中又包含一个或多个if语句称为if语句的嵌套。一般形式如下:
注意if与else的配对关系。else总是与它上面最近的、且未配对的if配对。例如
如果if与else的数目不一样,为了实现程序设计者的企图,可以加花括号来确定配对关系。例如关系清楚,不会出错。if与else的实际配对关系与程序设计者的意图不符,容易出现错误。3.6多分支选择结构和switch语句
实际问题中常常需要用到多分支的选择。例如,学生成绩的分类(90分以上为‘A’等,80~89为‘B’等,70~79为‘C’等…);还有工资统计分类;银行存款分类等。用嵌套的if语句可以处理,但如果分支较多,则嵌套的if语句层数多,程序就会冗长且可读性降低。C++提供switch语句即多分支选择语句,用来实现多分支选择结构。它的一般形式如下:switch(表达式){case常量表达式1:语句1case常量表达式2:语句2┆case常量表达式n:语句ndefault:语句n+1}switch(grade){case‘A’:cout<<“85~100\n”;case‘B’:cout<<“70~84\n”;case‘C’:cout<<“60~69\n”;case‘D’:cout<<“<60\n”;default:cout<<“error\n”;}例如,按考试成绩的等级打印出百分制分数段。说明:
⑴switch后面括号内的“表达式”的值只能是整型、字符型、枚举型。例如下面写法是错误的。
⑵
当switch表达式的值与某一个case子句中的常量表达式的值相匹配时,就执行此case子句中的内嵌语句,若所有的case子句中的常量表达式的值都不能与switch表达式的值匹配,就执行defaulf子句的内嵌语句。floatf=4.0switch(f) //error{//...}
⑶
每一个case表达式的值必须互不相同,否则就会出现互相矛盾的现象。例如
⑷
各个case和default的出现次序不影响执行结果。case'A':cout<<''thisisA\n'';csae65:cout<<''thisis65\n''; //error:'A'等值于65……
因此,应该在执行一个case子句后,使流程跳出switch结构,即终止switch语句的执行。可以用一个break语句达到此目的。将上面的switch结构改写如下:switch(grade){case‘A’:cout<<“85~100\n”;break;case‘B’:cout<<“70~84\n”;break;case‘C’:cout<<“60~69\n”;break;case‘D’:cout<<“<60\n”;break;default:cout<<“error\n”;}最后一个子句(default)可以不加break语句。
⑸
执行完一个case子句后,流程控制转移到下一个case子句继续执行。“case常量表达式”只是起语句标号作用,并不是在该处进行判断。加break语句后的执行流程图如下。⑹
每个case分支可以有多条语句,但不必用{}。
⑺
多个case可以共用一组执行语句。例如
case‘A’:
case‘B’:
case‘C’:cout<<“60~69\n”;break;
……3.7编写选择结构的程序【例】输入一个年份,判断是否闰年。
分析:闰年的年份可以被4整除而不能被100整除,或者能被400整除。
用逻辑变量leap表示被测试的年份是否为闰年。若是闰年,令leap=true(真);若不是闰年,则令leap=false(假)。最后根据leap的结果,决定输出的信息。
源程序:
#include<iostream>usingnamespacestd;intmain(){intyear; boolleap; cout<<“pleaseenteryear:"; cin>>year; if((year%4==0&&year%100!=0)||(year%400==0))leap=true;elseleap=false;if(leap)cout<<year<<"isaleapyear."<<endl; elsecout<<year<<"isnotaleapyear"<<endl;return0;}
程序运行结果为
pleaseenteryear:20002000isaleapyearif(year%4==0){if(year%100==0){if(year%400==0)leap=true;elseleap=false;}elseleap=true;}elseleap=false;上面程序中的判断语句可改写成下面的if语句:if(year%4!=0)leap=false;elseif(year%100!=0)leap=true;elseif(year%400!=0)leap=false;elseleap=true;还可改写成下面的if语句:【例】运输公司对用户计算运费。路程(s)越远,每公里运费越低。标准如下:
S<250㎞没有折扣
250≤S<5002%折扣
500≤S<10005%折扣
1000≤S<20008%折扣
2000≤S<300010%折扣
3000≤S15%折扣
设每公里每吨货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费的计算公式为
f=p*w*s*(1-d)分析:#include<iostream>usingnamespacestd;intmain(){intc,s;floatp,w,d,f;cout<<“pleaseenterp,w,s:”;cin>>p>>w>>s;if(s>=3000)c=12;elsec=s/250;switch(c){case0:d=0;break;case1:d=2;break;case2:case3:d=5;break;case4:case5:case6:case7:d=8;break;case8:case9:case10:case11:d=10;break;case12:d=15;break;}f=p*w*s*(1-d/100.0);cout<<“freight=”<<f<<endl;return0;}运行情况如下:pleaseenterp,w,s:10020300freight=588000【例】输入一个1~3的整数,来计算相应图形的面积(1-圆形,2-长方形,3-正方形)。分析:本题需要根据输入的数字决定相应面积的计算,由于数字1~3分别对应圆形、长方形和正方形,因此需要运用多重分支结构。但是每次判断的都是输入的整数,所以选用switch语句最为适宜。
#include<iostream>usingnamespacestd;constdoublePI=3.1416;intmain(){intiType; doubleradius,a,b,area; cout<<"图形的类型为?(1-圆形,2-长方形,3-正方形):"; cin>>iType; switch(iType) { case1: cout<<"圆的半径为:"; cin>>radius; area=PI*radius*radius; cout<<"面积为:"<<area<<endl; break;case2: cout<<"矩形的长为:"; cin>>a; cout<<"矩形的宽为:"; cin>>b; area=a*b; cout<<"面积为:"<<area<<endl; break;case3: cout<<"正方形的边长为:"; cin>>a; area=a*a; cout<<"面积为:"<<area<<endl; break; default: cout<<"不是合法的输入值!"<<endl; }return0;}程序运行结果为图形的类型为?(1-圆形,2-长方形,3-正方形):1圆的半径为?:2面积为12.56643.8.1用while语句构成循环
while语句的一般形式如下:
while(表达式)语句
while语句的执行流程图如右图所示。3.8循环结构和循环语句
【例】求,即1+2+3+…+100。分析算法:#include<iostream>usingnamespacestd;intmain(){inti=1,sum=0;while(i<=100){sum=sum+i;i++;}cout<<“sum=”<<sum<<endl;return0;}运行结果为sum=5050⑴循环体如果包含一个以上的语句,应该用花括号括起来,以复合语句形式出现。⑵应用while语句时,一般来说在循环体中,应该包含有使循环趋向于结束的语句,否则便会造成死循环。
注意:3.8.2用do-while语句构成循环dowhile语句的特点是先执行循环体,然后判断循环条件是否成立。do-while语句的一般形式为do
语句while(表达式);do-while语句的执行流程图如右图所示。【例】用do-while语句编程,求。分析算法:#include<iostream>usingnamespacestd;intmain(){inti=1,sum=0;do{sum=sum+i;i++;}while(i<=100);cout<<“sum=”<<sum<<endl;return0;}do-while与while语句都是实现循环结构的,两者的区别如下:
while语句先判断表达式的值,当值为true时,再执行循环体;而do-while语句是先执行循环体,再判断表达式的值。在大多数情况下,如果循环控制条件和循环体中的语句都相同,while循环和do-while循环的结果是相同的。但是如果一开始循环控制条件就为假,这两种循环的执行结果就不同了,do-while循环至少执行一次循环体,while循环却一次都不执行。请同学们分析下面两个程序在输入的i值大于10和不大于10的情况下的运行结果。程序l:#include<iostream>usingnamespacestd;intmain(){inti,sum=0;cin>>i;while(i<=10){sum+=i;i++;}cout<<"sum="<<sum<<endl;return0;}
程序2:#include<iostream>usingnamespacestd;intmain(){inti,sum=0;cin>>i;do{sum+=i;i++;}while(i<=10);cout<<"sum="<<sum<<endl;return0;}3.8.3用for语句构成循环C++中for语句的使用最为广泛和灵活,它既可以用于循环次数已经确定的情况,也可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句。for语句的一般形式为for(表达式1;表达式2;表达式3)语句for语句的执行流程图如右图所示。for语句最简单的形式也是最容易理解的形式如下:for(循环变量赋初值;循环条件;循环变量增值)语句例如for(i=1;i<=100;i++)sum=sum+i;相当于以下语句:i=1;while(i<=100){sum=sum+i;i++;}显然,用for语句简单、方便。关于for语句的说明:
⑴for语句的一般格式中的“表达式1”可以省略,此时应在for语句之前给循环变量赋初值。注意:省略表达式1时,其后的分号不能省略。例如:
⑵
如果表达式2省略,即不判断循环条件,循环无终止地进行下去。也就是认为表达式2始终为真。注意:省略表达式2时,其后的分号不能省略。例如:相当于
⑷
可以省略表达式1和表达式3,只有表达式2,即只给循环条件。例如:
⑶
表达式3也可以省略,但此时程序设计者应另外设法保证循环能正常结束。例如:相当于
⑹
表达式1可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式。例如:⑸3个表达式都可省略。例如:相当于表达式3也可以是与循环控制无关的任意表达式。
表达式1和表达式3可以是一个简单的表达式,也可以是逗号表达式。例如:
⑺
表达式一般是关系表达式(如i<=100)或逻辑表达式(如a<b&&x<y),但也可以是数值表达式或字符表达式,只要其值为非零,就执行循环体。例如:执行情况如右图所示。
其作用是每读入一个字符后立即输出该字符,直到输入一个“换行”为止。
该for语句的循环体为空语句,把本来要在循环体内执行的内容放在表达式3中。建议:不要把与循环控制无关的内容放到for语句中。3.8.4几种循环的比较⑴3种循环都可以用来处理同一问题,一般情况下可以互相代替。⑵while和do-while循环是在while后面指定循环条件的,在循环体中应包含使循环趋于结束的语句。⑶用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成。而for语句可以在表达式1中实现循环变量的初始化。for循环可以在表达式3中包含使循环趋于结束的条件,甚至可以将循环体中的操作全部放到表达式3中。3.9循环的嵌套
一个循环体内可以包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环中还可以再嵌套循环,构成多层循环。while、do-while、和for三种循环语句可以互相嵌套。例如:3.10break语句和continue语句break语句的作用是使流程从循环体内跳出循环体,即提前结束循环,接着执行循环体下面的语句。
在switch结构中,break语句使流程跳出switch结构,继续执行switch语句下面的语句。break语句还可用于循环体内。break语句的一般形式为break;
注意:break语句只能用于循环语句和switch语句内,不能单独使用或用于其他语句中。3.10.1break语句continue语句的一般形式为continue;continue语句的作用是结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。continue语句和break语句的区别是:continue语句只结束本次循环,而不是终止整个循环的执行。而break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。例如:3.10.2continue语句
此程序的执行流程图如右图所示。
此程序的执行流程图如右图所示。【例】从键盘输入多个字符,统计小写字符的个数,直到遇到“$”字符结束。#include<iostream>usingnamespacestd;intmain(){charch;intsum=0;
分析:程序中字符的输入及统计语句肯定应在循环体中,顺序也应当是先输入后判断。若输入的字符为“$”字符,则应用break语句结束循环,否则,一直循环下去。运行结果为输入:edrftgu$输出:sum=7while(true){cin>>ch;if(ch=='$')break;if(ch>='a'&&ch<='z')sum++;}cout<<"sum="<<sum<<endl;return0;}
【例】找出10~100之间不能被2和3整除的数。
分析:该问题是固定范围的求解,所以用for循环最好。在循环体中判断是否为要找的数,如果是则输出,如果不是则应用continue语句结束本次循环,进行下一个数的循环判断。#include<iostream>usingnamespacestd;intmain(){intm;intsum=0;
for(m=10;m<=100;m++){if(m%3==0||m%2==0)continue;cout<<m<<'\t';sum++;if(sum%10==0)cout<<endl;}return0;}运行结果为1113 171923 25 293135 374143 474953 55 596165 677173 777983 85 899195 973.10.3goto语句goto语句的作用是使程序的执行流程跳转到语句标号所指定的语句。goto语句的一般形式为goto<语句标号>
其中“语句标号”是用来表示语句的标识符,放在语句的最前面,并用冒号(:)与语句分开。
注意:goto语句的使用会破坏程序的结构,应该少用或不用。3.10编写循环结构的程序【例】用下面公式求的近似值。直到最后一项的绝对值小于10-7为止。#include<iostream>#include<iomanip>#include<cmath>usingnamespacestd;intmain(){ints=1;doublen=1,t=1,pi=0;while(fabs(t)>1e-7){pi=pi+t;n=n+2;s=-s;t=s/n;}pi=pi*4;cout<<“pi=”<<setiosflag(ios::fixed)<<setprecision(6)<<pi<<endl;return0;}运行结果
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 政府采购合同协议的解除条件和程序
- 多功能粘合剂购销合同
- 门票预售合同补充协议
- 正规借款合同模板范文
- 借条协议书示例
- 中移合作合同解读
- 中小学开学第一课352
- 高中生化学元素周期表故事征文
- 二手房房屋买卖合同协议
- 部编版《道德与法治》六年级下册第3课《学会反思》精美课件
- 从业务骨干到管理者
- 新概念力学教案
- GB/T 13023-2008瓦楞芯(原)纸
- Unit 3 Healthy eating Reading and thinking说课课件【知识精讲+拓展训练】高中英语人教版选择性必修第二册
- 2023年江苏省高等教育自学考试旅游资源规划与开发试卷共八套都会通过是没问题的不信试试看
- SV300呼吸机介绍及基本操作课件
- 清洗消毒及灭菌效果监测标准-课件
- 2021国开电大操作系统形考任务 实验报告-进程管理实验
- DLT50722023年火力发电厂保温油漆设计规程
- 后勤管理人员试题及答案
- 山东省日照市各县区乡镇行政村村庄村名居民村民委员会明细
评论
0/150
提交评论