实验二循环结构程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
L000ZF*S^fiW: 6
Press ani/ kei; to continue_
3.
程序
123 45 6789
123 456789
4 6810 12 14 16 18
912 15 18 21 24 27
16 20 24 28 32 36
25 30 35 40 45
36 42 48 54
49 56 63
prin tf("1000之内的完数有:");
for(i=1;i<=1000;i++)
{
m=0;
for(j=1;j<i;j++)
{
if(i%j==0)
m=m+j;
}
if(m==i)
prin tf("%d\t",i);
}
prin tf("\n");
return 0;
}
运行结果:
*C: \DocuBeiits and Settings\AdBinistrator\^0 \Debu^\£出完eze*
都比前一格增加一倍,依此放完棋盘上的64个格子,我就感恩不尽了。舍罕王让人扛来
一袋麦子,他要兑现他的许诺。国王能兑现他的许诺吗?
程序1:试编程计算舍罕王共要多少粒麦子赏赐他的宰相,这些麦子合多少立方米?(已知1
立方米麦子约1.42e8粒) 总粒数为:sum=1+2+2+23+…+263
程序代码:
#i nclude<stdio.h>
64 72
81
程序代码:
#i nclude<stdio.h>
int mai n()
{
int i,j;
for(i=1;i<=9;i++)
{for(j=1;j<=9;j++)
if(j<i)pri ntf(" ");//输出三个空格
else
prin tf("%3d",i*j); prin tf("\n");
后应注意数据类型的设置;第二题中最主要的是应该在每次得到一个完数后把m置零,
不然的话得到的m是一个累加结果,程序出错;第三题开始做时一直出错,怎么都得不到上 三角,想了好长时间,最后和同学讨论讨论,原来是当j<i时输出空格的问题,空格数要和
最后输出格式相照应,这样就没问题了。最后又比较了break语句和continue语句在循环结 构中使用的区别。
int main()
{
double i=0,sum=1,sum1=1;
double v;
while(i<=62)
{
sum1=2*sum1;
sum=sum+sum1;
i++;
}
v=sum/1.42e8;
prin tf("赏给他的麦子数为:%.0f\n",sum);
printf("共有%.2f立方米\n",v);
return 0;
}
运行结果:
2.求完数
程序2: 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6的因子为1,2,3, 而6=1+2+3因此6是“完数”。编程找出1000之内的所有完数,输出所有的完数(要 求:一行显示6个数);
程序代码:
#in clude<stdio.h>
int main() int i,j,m;
三、问题讨论
break
Break
例:#include<stdio.h>
int main()
{
int i,j, n=0;
for(i=1;i<=4;i++)
for(j=1;jv=5;j++,n++)
{
if(n %5==0)pri ntf("\n");
if(i==3&&j==1)break;〃遇到第3行第一列,终止内循环
}
return 0;
}
匚i~C:\DocuAent s andrsator、出上三表-色st世
123
4
5
6
7
8
9
4 6
8
10
12
14
16
18
9
12
15
18
21
24
27
16
20
24
28
32
36
25.
30
35
40
45
36
42
48
54
49
63
64
72
SI
Press any
ke勺
> to
i continuc
' E:\C 4- +1^^\Debug\gg.exe"
*
*
1
2
3
4
■2
4
6来自百度文库
8
10
9
12
15

8
12
IS
fress any key
to continue
四、实验心得
本次实验主要练习了while语句,do-while语句和for语句实现循环的方法,其 用法我已经基本掌握,不过在做题时还有很多细节问题,像第一题中,定义错了变量 的类型而使输出结果错误,因为最后得到的结果较大,所以应该用double类型,以
prin tf("%d\t",i*j);
}
prin tf("\n");
return 0;
}
输出结果如图:
r
' E:\C+ +&^\Debug\gg.«e'
23
4
5
I2
46
8
10
L
8 12
16
20
^Press anv key to continue
当把break语句改为continue语句时,即if(i==3&&j==1)co ntin ue输出结果为
C语言程序设计实验报告
实验二循环结构程序设计
一、实验目的
(1)掌握用while语句,do-while语句和for语句实现循环的方法;
(2)掌握循环结构的嵌套;
(3)掌握break语句和continue语句的使用方法。
二、实验内容及步骤
1•相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜欢象棋,决定让宰相自 己选择何种赏赐。这位聪明的宰相指着8X8共64格的象棋盘说:陛下,请您赏给我一些 麦子吧,就在棋盘的第一个格子中放1粒,第2格中放2粒,第3格放4粒,以后每一格
相关文档
最新文档