文档详情

第四讲程序控制结构.ppt

发布:2018-10-16约3.26千字共16页下载文档
文本预览下载声明
选择结构应用示例 该范例求方程ax2+bx+c=0的根。该程序的实现需要接收用户输入a,b,c,并根据输入判断是否有实根求出。 流程图 循环结构应用示例 在该范例中,需要分开一个数的百位、十位和个位,然后求出其立方和是否与该数字本身相等,如相等则输出,否则继续寻找下一个数 代码清单 1 #include iostream.h 2 void main() 3 { 4 int i,j,k,n,m; 5 for (i=1;i=9;i++)//百位数从1到9变化,不能取0,如果百位为0就不是三位数了 6 { 7 for (j=0;j=9;j++)//十位从0到9变化,允许取0 8 { 9 for(k=0;k=9;k++)//个位从0到9变化,允许取0 10 { 11 n=i*100+j*10+k;//这个数等于百位数乘于100加上十位数乘10加上个位数(乘于1省略) 12 m=i*i*i+j*j*j+k*k*k;//百位上数的立方加上十位上数的立方加上个位上数的立方 13 if(n==m) coutn ;//这是一个三位数是否为水仙花数的条件,即水仙花数是各位数字立方和等于该数字本身 14 } 15 } 16 } 17 coutendl; 18 } 综合练习 使用辗转相除法求两个数的最大公约数和最小公倍数的算法 所谓辗转相除法,比如求x,y的最大公约数,先讨论(x%y)的余数b是否等于0,如果是则y为最大公约数;否则将y的值赋给x,把b的值赋给y然后在继续对b讨论,一直循环下去直到b=0时,的y值就是所求的最大公约数了。 代码清单 1 #includeiostream.h //包含头文件 2 void main() 3 { 4 int a,b,num1,num2,temp; //定义整型变量 5 coutPlease input 2 numbers: endl; //提示 6 cinnum1num2; //接收键盘输入 7 if(num1num2) //找出两个数中的较大值 8 { 9 temp=num1; 10 num1=num2; 11 num2=temp; //交换两个整数 12 } 13 a=num1; //变量赋值,保存num1和num2的值 14 b=num2; 15 while(b!=0) //采用辗转相除法求最大公约数 16 { 17 temp=a%b; //取a整除b的余数 18 a=b; //将b的值赋值给a 19 b=temp; //将余数赋值给b 20 } 21 cout最大公约数为: aendl; //输出最大公约数 22 cout最小公倍数为: num1*num2/aendl; //输出最小公倍数 23 } 1-* 北京源智天下科技有限公司 联系方式: 联系方式: 北京源智天下科技有限公司 第四讲:程序控制结构 杨章伟 e-mail:jtclass@163.com 课程内容安排 顺序结构 选择结构 循环结构 转向语句 综合练习 思考和习题 顺序结构 顺序结构是指按照所有语句出现的顺序先后执行,先出现的先执行,后出现的后执行。顺序结构的执行流程如图4-1所示。 顺序结构应用示例 该范例给出了使用不同格式控制函数和格式控制符输出数据时返回的数据显示 。 代码清单 1 #include iostream.h //预处理文件 2 #include iomanip.h 3 void main() //主函数 4 { 5 const double Num=123.4567; 6 cout.flags (ios::right); //设置对齐的标志位是右 7 coutsetw(10)Numendl; //显示数据的域宽是10 8 cout.fill (*); //填充字符* 9 cout.width (12); //显示数据的域宽是12 10 coutNumendl; 11 cout.precision (4); //浮点数的有效个数为4 12 coutNumendl; 13 cout.setf(ios::showpos); //显示正号 14 cout.precision (2); //浮点数的有效个数为4 15
显示全部
相似文档