循环程序设计
一、实验目的
1.熟练用while语句,do-while语句和for语句实现循环的方法。
2.掌握在程序设计中用循环实现各种算法(如穷举、迭代、递归等)。
3.熟悉break语句和continue语句用法的不同之处。
二、实验内容
【例】以下程序,输出三角形状的乘法九九表
#include<cstdio>
int main()
{
int i,j;
for(i=1;i<=9;i++) printf(" %4d",i);
printf("\n");
for(i=0;i<=50;i++) printf("%c",'_');
printf("\n");
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
printf(" %4d",i*j);
printf("\n");
}
printf("\n");
return 0;
}
运行结果截图如下
![](https://i-blog.csdnimg.cn/blog_migrate/63d5bbc8f92b9c28bae3fe341b60881a.png)
修改后运行截图
#include<cstdio>
int main()
{
int i,j;
for(i=9;i>=1;i--) printf(" %4d",i);
printf("\n");
for(i=0;i<=50;i++) printf("%c",'_');
printf("\n");
for(i=1;i<=9;i++)
{
for(j=9;j>=i;j--)
printf(" %4d",i*j);
printf("\n");
}
printf("\n");
return 0;
}
![](https://i-blog.csdnimg.cn/blog_migrate/021cb8f9b6adc77ae84d5f409845a8c7.png)
三、编辑程序并上机调试运行
1.找出1000以内的所有完数,并输出其因子
#include<cstdio>
bool judge(int a)
{
int copy=a;
for(int i=1;i<copy;i++)
{
if(copy%i==0)a-=i;
}
return a==0;
}
int main()
{
int num=1000;
for(int i=1;i<=1000;i++)
{
if(judge(i))
{
printf("%d是完数,其因数为",i);
for(int j=1;j<i;j++)
{
if(i%j==0)printf("%d ",j);
}
printf("\n");
}
}
}
运行结果如图
![](https://i-blog.csdnimg.cn/blog_migrate/2ba0a7e12b27cc50c839c9ea3881d514.png)
2.找出10对孪生素数
#include<cmath>
#include<cstdio>
bool isprime(int a)
{
for(int i=2;i<sqrt(a);i++)
{
if(a%i==0)
return false;
}
return true;
}
int main()
{
int cnt=0;
for(int i=3;;i++)
{
if(isprime(i)&&isprime(i+2))
{
printf("%d %d\n",i,i+2);
cnt++;
}
if(cnt==10)
break;
}
}
运行结果如图
![](https://i-blog.csdnimg.cn/blog_migrate/14025cc4d5c3ce8b965c18a1b3a269a1.png)