[工学]C++程序设计第3章.ppt
文本预览下载声明
* * * * #includeiostream.h void main() { int score; int a; coutInput score(0~100):; cinscore; a=score/10; switch(a) { case 10: case 9: cout 优 endl; break; case 8: cout 良 endl; break; case 7: cout 中 endl; break; case 6: cout 及格 endl; break; default: cout不及格 endl; } } * * #includeiostream.h void main() { int score; int a; coutInput score(0~100):; cinscore; a=score/10; switch(a) { case 10: case 9: cout 优 endl; break; case 8: cout 良 endl; break; case 7: cout 中 endl; break; case 6: cout 及格 endl; break; default: cout不及格 endl; } } * * * #include iostream.h void main( ) { int i=1,sum=0; while (i=100) { sum=sum+i; i++; } coutsum=sumendl; } * * * * * * * * * * * * * * * * * * * * * * * * 求素数 素数是除1和本身,不能被其它任何整数整除的整数。判断一个数m是否为素数,只要依次用2, 3, 4, …, m-1作除数去除m,只要有一个能被整除,m就不是素数。 【实例四】从键盘上输入一个大于2的自然数,判断其是否为素数。 分析:可使用一个逻辑变量flag来表示自然数m是否为素数。首先标志flag默认为true,然后循环判断m能否被2, 3, 4, …, m-1整除,只要有一个整除,就可停止循环并修改标志flag,根据标志flag是否被修改即可知道m是否是素数。 * * #include iostream.h void main() { int m,i; bool flag; printf(输入整数m:\n“); scanf(“%d”,m); flag = true; //设标志为true for(i=2;im;i++) if (m%i==0) //能被i整除 { flag=false; //设标志为false break; //只要有一个整除,m不是一个素数就可停止 } if(flag==true) //根据标记flag输出判断结果 printf(“%d是素数\n“,m); else printf(“%d不是素数\n“,m); } * * 递推与迭代 利用递推算法或迭代算法,可以将一个复杂的问题转换为一个简单过程的重复执行。这两种算法的共同特点是,通过前一项的计算结果推出后一项。不同的是,递推算法不存在变量的自我更迭,而迭代算法则在每次循环中用变量的新值取代其原值。 一、递推 【实例七】输出(Fibonacci)数列的前20项。即1,1,2,3,5,8,…。 分析:设数列中相邻的3项分别为变量f1、f2和f3,则有如下递推算法: (1)f1和f2的初值为1。 (2)每次执行循环,用f1和f2产生后项,即f3 = f1 + f2。 (3)通过递推产生新的f1和f2,即f1 = f2,f2 = f3。 (4)如果未达到规定的循环次数,返回步骤2;否则停止计算。 * * #include iostream.h #include math.h void main() { long f1, f2, f3; f1 = 1; f2 = 1; // 初始条件 printf(“%d\n%d\n”,f1,f2); for(int i=3;i=20;i++) { f3=f1+f2; //
显示全部