循环结构程序设计典型例题
例1:有数列2/3、4/5、6/9、10/15……求此数列前30项的和。
算法分析:
对于数列的题,首先要找出通项公式,或前后项的计算关系公式,根据公式求所需。由于数列的题一般执行次数能确定,用for语句来编写比较方便。
此题,前后项的关系是:后一项的分子是前一项的分母加1,后一项的分母是前一项的分子加分母。解题思路是用循环语句求各项,并把值累加,因为是求前30项的和,循环执行30次。
1. 初值i=2,j=3,s=0;
2. 用n从1到30循环
3. s=s+ i/j;
4. c=i; i=j+1; j=c+j;
5.输出s;
程序:
#include
main( )
{ int i=2,j=3,n,c;
float s=0;
for(n=1;n<=30;n++)
{ s=s+(float)i/j;
c=i;
i=j+1;
j=c+j;
}
printf(“\n%f”,s);
}
此题中的n与循环体中的执行语句没有数值上的联系,仅仅用做决定循环执行的次数。 例2:下面这个程序,想想它实现的是什么功能?
#include
main( )
{ int i,s=0;
for(i=1;i<=100;i++)
{if(i%5==0) continue;
s=s+i;
}
printf(“\n%d”,s);
}
在左边的程序中,i从1到100循环,当i是5的倍数时,直接进入下一个i,当i不是5的倍数时,把i累加到s, 最后输出s。 所以,这个程序实现的是求1~100中间所有非5的倍数的数之和。
例3:输出n~m中(0