第五章
用break语句提前终止循环
作用:使流程跳到循环体之外,接着执行循环体下面的语句。 注意:break语句只能用于循环语句和switch语句之中,而不能单独使用
用continue语句提前结束本次循环
作用:结束本次循环,即跳过循环体中下面尚未执行的语句,转到循环体结束点之前,接着执行for语句中的“表达式3”,然后进行下一次是否执行循环的判定。
continue语句只结束本次循环,而非终止整个循环。break语句结束整个循环,不再判断执行循环的条件是否成立
求Fibonacci(斐波那契)数列的前40个数
#include <stdio.h> int main() { int f1=1,f2=1; int i; for(i=1; i<=20; i++) //每个循环输出2个月的数据,故只需循环20次 { printf("%12d %12d ",f1,f2); //输出已知的两个月的兔子数 if(i%2==0) printf("\n"); f1=f1+f2; //计算出下一个月的兔子数,并存放在f1中 f2=f2+f1; //计算出下两个月的兔子数,并存放在f2中 } return 0; }
输入一个大于3的整数n,判定它是否为素数(prime,又称质数)
#include <stdio.h> #include <math.h> int main() { int n,i,k; printf("please enter a integer number,n=?"); scanf("%d",&n); k=sqrt(n); for (i=2;i<=k;i++) if(n%i==0) break; if(i<=k) printf("%d is not a prime number.\n",n); else printf("%d is a prime number.\n",n); return 0; }
求100~200间的全部素数
#include<stdio.h> #include<math.h> int main() { int n,k,i,m=0; for(n=101;n<=200;n=n+2) //n从100变化到200,对每个奇数n进行判定 { k=sqrt(n); for(i=2;i<=k;i++) if(n%i==0) break; //如果n被i整除,终止内循环,此时i<k+1 if(i>=k+1) //若i>=k+1,表示n未曾被整除 { printf("%d ",n); //应确定n是素数 m=m+1; //m用来控制换行,一行内输出10个素数 } if(m%10==0) printf("\n"); //m累计到10的倍数,换行 } printf ("\n"); return 0; }
第六章
对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出
#include<stdio.h> int main() { int i,a[10]; for(i=0; i<=9;i++) //对数组元素a[0]~a[9]赋值 a[i]=i; for(i=9;i>=0;i--) //输出a[9]~a[0]共10个数组元素 printf("%d ",a[i]); printf("\n"); return 0; }
用数组来处理求Fibonacci数列问题(前20个)
#include <stdio.h> int main() { int i; int f[20]={1,1}; //对最前面两个元素f[0]和f[1]赋初值1 for(i=2;i<20;i++) f[i]=f[i-2]+f[i-1]; //先后求出f[2]~f[19]的值 for(i=0;i<20;i++) { if(i%5==0) printf("\n"); //控制每输出5个数后换行 printf("%12d",f[i]); //输出一个数 } printf("\n"); return 0; }
scanf函数中的输入项如果是字符数组名,不要再加地址符&,因为在C语言中数组名代表该数组第一个元素的地址(或者说数组的起始地址)。
第七章