文档详情

c语言循环程序示例课堂练习.pptx

发布:2020-02-22约5.62千字共25页下载文档
文本预览下载声明
1 方法一:数列是正、负相间的,在这里可用一个“开关”变量 t 来解决符号的问题。 main() { float s=0; int t=1,i ; for(i=1;i101;i++) { s+=1.*t / i ; t= -t ; } printf(s=%f\n,s); } [例] 求 s=1-1/2+1/3-1/4+… +1/99-1/100。 2 方法二:分别求出正项和s1(奇数倒数)与负项和s2(偶数倒数),则s=s1-s2. main() { float s,s1=0,s2=0; int i; for(i=1;i101;i+=2) { s1+=1.0/ i; s2+=1.0/(i+1); } s=s1-s2; printf(s=%f\n,s); } 3 [例] 输入若干字母,将它们变成其后的第四个字母, A--E, W--A.非字母字符忽略。 思路: 1.建立循环, 循环结束以输入回车符为准 while (c=getchar()!=’\n’) 2. 判断输入是否是字符,否则忽略 if ((c=’a’ c=’z’) || (c=’A’ c=’Z’)) 3.变成其后的第四个字母 c=c+4; 4. 若变换后超出z时,要轮回. If ((c’Z’ c‘a’)||(c’z’)) c=c-26 …A…Z….a….z….. 4 #include “stdio.h” main() { char c; while (c=getchar()!=’\n’) { if ((c=’a’ c=’z’) || (c=’A’ c=’Z’)){ c=c+4; if ((c’Z’ c=’a’ )||(c’z’)) c=c-26; } printf(“%c”,c); } } 5 [例] 输入30个0~9的字符数字,计算数字串中有多少个奇数,偶数和零 . 思路: 输入30个字符数字char num,而不是整数 30个字符的输入和30个数字的输入的区别 字符可以连续输入30个 009764146589…... 数字输入必须是用空格,Tab键或回车隔开 0 0 9 7 6 4 1 4 6 5 8 9 … … 将字符变成数字后判断奇偶 i=num-’0’; 字符数字的ASCII码:48 49 50 51 52 53 54 55 56 57 6 步骤: 计数变量n1,n2,n3初始值设为零; 输入1个字符num; 循环变量初值为1; 若i=30,重复 字符变成数字,num=num-’0’ 判断num是否为0 判断num%2的值 循环变量i++ 再输入1个字符num 输出n1,n2,n3的值。 7 main() { int i, n1=0,n2=0,n3=0; char num; scanf(“%c”,num); for (i=1;i=30;i++) { num=num-’0’; if (num==0) n1++; if (num%2) n2++; else n3++; scanf(“%c”,num); } printf(‘There are %2d evens, %2d odds, %2d zeros ”,n1,n2,n3,);} 8 [例] 输入一个整数,计算它的位数.并反向输出. 分析:设一个数13579,一位一位地切下末位 循环结束条件: num==0; 同时计数 count=count+1; 135 1357 13579 7 9 5 13 bit bit=num%10 num=num/10 1357 9 135 7 13 5 3 1 3 9 main() { long int num; int count = 0; printf(“Please enter an integer:\n”); scanf(“%ld”,num); do { printf(“%d”,num%10); num = num /10; count + +; } while (num !=0 ); printf(“ %d digits.”, count); } 10 * *** *****
显示全部
相似文档