chapter05 循环结构程序设计习题.ppt

chapter05 循环结构程序设计习题

循环结构程序设计习题 用π/4≈1-1/3+1/5-1/7+...公式求π的近似值,直到某一项的绝对值小于10-6为止。 #include stdio.h #include math.h void main () { int s; float n, t, pi; t = 1; pi = 0; n = 1.0; s = 1; while (fabs (t) 1e-6) { pi = pi + t; n = n + 2; s = -s; t = s / n; } pi = pi * 4; printf (pi = %10.6f\n, pi); } 求Fibonacci数列前40个数。这个数列有如下特点:第1、2两个数为1、1,从第3个数开始,该数是其前面两个数之和。即: F1 = 1 F2 = 1 Fn = Fn-1 + Fn-2 #include stdio.h void main() { long int f1, f2; int i; f1 = 1; f2 = 1; for (i = 1; i = 20; i++) { printf (%12ld %12ld , f1, f2); if (i % 2 == 0) printf (\n); f1 = f1 + f2; f2 = f2 + f1; } } * * 运行结果: pi = 3.141594 运行结果: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 102334155 译密码。为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。 思路:可以按以下规律将电文变成密码: 将字母A变成字母E,a变成e,即变成其后的第4个字母,W变成A,X变成B,Y变成C,Z变成D。 #include stdio.h void main () { char c; while ((c = getchar ()) != \n) { if ((c = a c = z) || (c = A c = Z)) { c = c + 4; if (c Z c = Z + 4 || c z) c = c - 26; } printf (%c, c); } } 运行结果: China! Glmre! 用“辗转相除法”求两个正整数m和n的最大公约数和最小公倍数。 算法如下: 将两数中大的那个放在m中,小的放在n中; 求出m被n除后的余数r; 若余数r为0,则执行步骤(6);否则执行步骤(4); 把除数(n)作为新的被除数(m),把余数r作为新的除数; 重复步骤(2)和(3),直到r为0; 输出n即为最大公约数。 m和n相乘除以最大公约数即为最小公倍数。 #include stdio.h void main () { int a, b, m, n, t, r; scanf (“%d%d”, m, n); if (m n) { t = m; m = n; n = t; } a = m; b = n; while ((r = m % n) != 0) { m = n; n = r; } printf (“%d和%d的最大公约数:%d ”, a,b,n); printf (“最小公倍数:%d\n”, a*b/n); } 用牛顿迭代法求下面方程在1.5附近的根: 2x3 - 4x2 + 3x - 6 = 0

文档评论(0)

1亿VIP精品文档

相关文档