循环嵌套编程实例

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{d=a+b+c;
a=b;
b=c;
c=d;
printf(“%ld”,d);
}
}
例3:求100!
方法一:main()
{
inti;
double s;
for(i=1,s=1;i<=100;i++)
s=s*i;
printf(“s=%lf\n”,s);
}
例4:编程1+1/2+1/6+1/12+……+1/n(n+1)
for(j=1;j<=8-(2*i-1);j++)
printf(“*”);
printf(“\n”);
}
}
例5:菱形
main()
{
int i,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=5-i;j++)
print(“”);
for(j=1;j<=2*i-1;j++)
printf(“*”);
x1=1.0/2*(x0+a/x0)当x0-x1的绝对值<10-5时,x1为最终结果。
#include“math.h”
main()
{
float a;
double x0,x1;
printf(“input a:”);
scanf(“%f”,&a);
if(a<0)priintf(“error!”);
else
一、循环结构的嵌套
1、在一个循环体内,双完整的包含了另一个循环,称为循环嵌套,循环的嵌套可以是多层,但每一层循环在逻辑上必须是完整的。
2、内循环语句应该比外循环语句有规律的向右缩进2—4列。
二、循环嵌套的实例
(一)、素数问题
1、分析方法:、
1)、素数的概念:除了1和本身之外不能被任何数整除。
x从2到x-1都不能被整除。
sum=sum+g;
}
ave=sum/M;
printf(“NO.%d ave=%5.2f\n”,i,ave);
}
}
printf(“”);
for(j=1;j<=2*i-1;j++)
printf(“*”);
printf(“\n”);
}
}
例4:输出倒着的正等腰三角形。(公式:列数=总行数*2-(2*当前行数-1))
main()
{
int i,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=i;j++)
printf(“”);
2)、素数的判断:x从2到x/2都不能被整除。
x从2到x的平方根都不能被整除。
2、例题:
例1、判断x是否为素数。
main()
{
int i,x;
clrscr();
scanf(“”,&x);
for(i=2;i<x;i++)
if(x%i==0)break;
if(i>=x)printf(“”yes);
else printf(“No”);
方法一:main()
{
double s;
int n,k;
scanf(“%d”,&n);s=1.0;
for(k=1;k<=n;k+)
s+=1.0/(k*(k+1));
printf(“%lf\n”,s);
}
例5:编写程序,求1-3+5-7+……-99+101的值
main()
{
int s,t,i;
for(s=0,i=1,t=1;i<=101;i+=2)
}
例2、输出所有三位素数。
main()
{
int x,i,n=0;
for(x=100;x<=999;x++)if(x%i==0)break;
{
for(i=2;i<x;i++)
if(i>=x)
{
printf(“%d”,x);n++;
if(n%10==0)printf(“\n”);
}
}
}Fra Baidu bibliotek
例3、求大于m的k个素数
{
x0=a/2;
x1=(x0+a/x0)/2;
do
{
x0=x1;
x1=(x0+a/x0)/2;
}
while (fabs(x0-x1)>1e-5);
}
printf(“lf”, x1);
}
(六)、从输入的若干个大于零的正整数中选出最大值,用-1结束输入
main()
{
int x,max;
do
scanf(“%d”,&x)
printf(“\n”);
}
for(i=1;i<=3;i+)
{
for(j=1;j<=i+1;j++)
printf( );
for(i=1;j<=6-(2*i-1);j++)
printf(“*”);
printf(“\n”);
}
}
(五)、用迭代法求某正数a的平方根x1,己知求平方根的迭代公式为:
x0=a/2
main()
{
int i,x,m,k,n;
scanf(“%d%d”,&m,&k);n=0;
for(x=m+1;n<k;x++)
{
for(i=2;i<x;i++)
if(x%i==0)break;
if(i>=x){printf(“x=%d”,x);n++;}
}
}
例4、求小于m的最大的k个素数
(二)累加前100个自然数的和。
方法一:main()
{
int i,s;
s=100;
for(i=99;i>=1;i--)
s+=i;
printf(“s=%d\n”,s);
}
(三)、斐波那数列
例1:有一数列,前两项分别是1,1从第三项开始,每项都是前二项的和,求这个数列前40项。
方法1:main()
{
int a=1,b=1,c,i;
for(i=3;i<=40;i++)
while(x<0&&x!=-1)
}
(七)、输入6名学生5门课程的成绩,分别统计每个学生5门课程的平均成绩。
#define N 6
#define M 5
main()
{
int i,j;
float g,sum,ave;
for(i=1;i<=N;i++)
{
for(sum=0,j=1;j<=M;j++)
{
scanf(“%f”,&g);
main()
{
int i,j;
for(i=1;i<=10;i++)
{
for(j=1;j<=11-i;j++)
printf(“*”);
printf(“\n”);
}
}
例3:输出4行7列的正等腰三角形。(公式:列数=当前行数*2-1)
main()
{
int i,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=5-i;j++)
{s=s+t*i;t=-t;}
printf(“s=%d\n”,s);
}
(四)、图形问题
例1:输出三行三列的正直角三角形。(公式:列数=当前行数)
main()
{
int i,j;
for(i=1;i<=3;i++)
{
for(j=1;j<=i;j++)
printf(“*”);
printf(“\n”);
}
}
例2:输出10行10列的倒直角三角形。(公式:列数=总行数+1-当前行数)
{
c=a+b;
a=b;
b=c;
printf(“%ld,%ld,%ld,%ld,a,b,c,d”,a,b,c,d)
}
}
例2:有一数列,前三项分别是0,1,2,从第四项开始,每项都是前三项和,求这个数列的前40项(扩展的斐波
那数列)
方法1:main()
{
long a=0,b=1,c=2,d,i;
for(i=4;i<=40;i++)
相关文档
最新文档