Lab4 循环结构程序设计.docx
《Lab4 循环结构程序设计.docx》由会员分享,可在线阅读,更多相关《Lab4 循环结构程序设计.docx(13页珍藏版)》请在冰豆网上搜索。
Lab4循环结构程序设计
姓名
张明阳
学号
41321043
班级
冶金1302
说明:
1.完成以下实验内容后,将本文档改名为“学号_姓名_班级_Lab4.doc”;
2.本次实验内容分两次上机课完成;
3.在第9周上机课时提交。
实验内容和实验要求(上机指导P132)
1.练习题一
运行结果截图:
思考题及问题:
1运行结果截图:
2运行结果截图:
3答案:
用辗转相除法编程时,计算机运行次数相对较少,所以计算机负担小。
但他的逻辑性很强,不容易理解。
所以一般也不容易想到。
用穷举法编程时,虽然需要从较小数依次减小循环运算,但程序相对较容易
理解。
2.练习题二
运行结果截图:
思考题及问题:
答案:
fabs(x0-x1)<1e-6
3.练习题三
运行结果截图:
思考题及问题:
1答案:
源程序文本(修改部分红色字体标注)
#include
voidmain()
{
inti,j;
for(i=1;i<=10;i++)
{
for(j=1;j<=i;j++)
printf("");
for(j=21-2*i;j>0;j--)
printf("*");
printf("\n");
}
printf("\n");
for(i=1;i<=10;i++)
{
for(j=1;j<=i;j++)
printf("");
for(j=11-i;j>0;j--)
printf("*");
printf("\n");
}
printf("\n");
for(i=1;i<=10;i++)
{
for(j=11-i;j>0;j--)
printf("");
for(j=1;j<=i;j++)
printf("%d",2*j-1);
printf("\n");
}
printf("\n");
for(i=1;i<=5;i++)
{
for(j=6-i;j>0;j--)
printf("");
for(j=1;j<=2*i-1;j++)
printf("%c",'A'+i-1);
printf("\n");
}
for(i=1;i<=5;i++)
{
for(j=1;j<=i;j++)
printf("");
for(j=11-2*i;j>0;j--)
printf("%c",'F'-i);
printf("\n");
}
}
运行结果截图:
②答案:
源程序文本(修改部分红色字体标注)
#include
voidmain()
{
inti,j;
for(i=1;i<=5;i++)
{
for(j=1;j<=i+20;j++)
printf("");
for(j=11-2*i;j>0;j--)
printf("*");
printf("\n");
}
printf("\n");
for(i=1;i<=5;i++)
{
for(j=1;j<=i+20;j++)
printf("");
for(j=6-i;j>0;j--)
printf("*");
printf("\n");
}
printf("\n");
for(i=1;i<=5;i++)
{
for(j=27-i;j>1;j--)
printf("");
for(j=1;j<=i;j++)
printf("%d",2*j-1);
printf("\n");
}
printf("\n");
for(i=1;i<=4;i++)
{
for(j=25-i;j>0;j--)
printf("");
for(j=1;j<=2*i-1;j++)
printf("%c",'A'+i-1);
printf("\n");
}
for(i=1;i<=3;i++)
{
for(j=1;j<=i+21;j++)
printf("");
for(j=7-2*i;j>0;j--)
printf("%c",'D'-i);
printf("\n");
}
}
运行结果截图:
自测练习
1.自测练习一
源程序文本:
#include
voidmain()
{
intn=10000,i=0,a,b,c,d,e;
do
{
a=n%10000;
b=(n-a*10000)%1000;
c=(n-a*10000-b*1000)%100;
d=(n-a*10000-b*1000-c*100)%10;
e=(n-a*10000-b*1000-c*100-d*10)%1;
if(a+b+c+d+e==9)
if(n%5==0)
i=i+1;}
while(n++>99999);
printf("能被五整除且各位数之和为9的五位数的个数是%d",n);
}
运行结果截图:
思考题答案:
不唯一
n%5==0
!
(n%5)!
=0
!
(n%)
2.自测练习二
源程序文本:
#include
#include
voidmain()
{
intn,j=0,b,m,i=1,a;
printf("请输入n:
");
scanf("%d",&n);
do
{m=n/i;i=i*10;j=j+1;}
while(m>=10);
do
{a=pow(10,--j);
b=n/a;
n=n-b*a;
switch(b)
{case0:
printf("zero,");break;
case1:
printf("one,");break;
case2:
printf("two,");break;
case3:
printf("three,");break;
case4:
printf("four,");break;
case5:
printf("five,");break;
case6:
printf("six,");break;
case7:
printf("seven,");break;
case8:
printf("eight,");break;
case9:
printf("nine,");break;};}
while(j>0);
printf("\n");
}
运行结果截图:
3.自测练习三
源程序文本:
#include
voidmain()
{
intn,i=1,m=0,p=0,s;
printf("Inputn:
");
scanf("%d",&n);
do
{
m=m+i;
s=m+p;
p=s;
}
while(i++printf("s=%d\n",s);
}
运行结果截图:
4.自测练习四
源程序文本:
#include
voidmain()
{
inti,j=1,x=0;
for(i=10;i<=1000;i++)
{j=1;
x=0;
do
{
if(i%j==0&&j
x=x+j;
}
while(j++
if(x==i)
printf("%d\n",i);};
}
运行结果截图: