C语言循环作业 实验三、 循环结构
一、实验目的
用循环结构解决实际问题;
二、知识点回顾
● for 语句是 C 语言中最常用的循环结构。一般形式为:
for (表达式 1;表达式 2;表达式 3) 语句;
执行过程如下:
1、计算表达式 1。
2、计算表达式 2。如为“真”(非 0),则执行 for 后的语句;如为“假”,则跳出循环体。
3、如表达式 2 为“真”,则执行完循环体后,计算表达式 3 的值。转回步骤 2。
最常用的形式是:
for(循环变量赋初值;判断条件;循环变量增值) 循环体语句;
● while 语句用来...
实验三、 循环结构
一、实验目的
用循环结构解决实际问题;
二、知识点回顾
● for 语句是 C 语言中最常用的循环结构。一般形式为:
for (表达式 1;表达式 2;表达式 3) 语句;
执行过程如下:
1、计算表达式 1。
2、计算表达式 2。如为“真”(非 0),则执行 for 后的语句;如为“假”,则跳出循环体。
3、如表达式 2 为“真”,则执行完循环体后,计算表达式 3 的值。转回步骤 2。
最常用的形式是:
for(循环变量赋初值;判断条件;循环变量增值) 循环体语句;
● while 语句用来实现“当型”循环结构,就是当满足某个条件时进行循环。形式为:
while (表达式) 循环体语句;
当表达式为“真”(非 0 值)时反复执行后面的语句。特点是先判断,后执行。一般来说,while 中的语句是复合语句,用{}括起来,叫做循环体。
● do-while 语句用来实现“直到型”循环,就是进行循环直到某个条件不满足。形式为:
do 循环体语句;
while (表达式);
当表达式为“真”(非 0 值)时反复执行 do 后面的语句,特点是先执行,后判断(注意区分与 while 语句的区别)。
● while 语句和 do-while 语句可以很容易的实现互相转换。一般情况下, 如果 while 语句和 do-while 语句的循环体部分一样,则它们的运行结果也是一样的。但是,如果判断条件一开始就不满足,则运行结果不一样, 因为此时 while 语句不执行循环体,而 do-while语句要执行一次。
三、实验内容一(验证及程序分析)
Eg3-1:求 1+2+3+4+5+„„+100 累加和
【说明:】本题要求完成经典的 C 算法——累加求和, 当我们把计算方法教给计算机后,剩下计算的问题就让计算机来算好了,计算机会像一头老黄牛一样不厌其烦地做事情。以后会有相似的算法如“连乘”,“求级数”,“求Π ”,“求阶乘”等。
(1)源程序:
#include
void main()
{
int i,sum=0;
for(i=1;i<100;i++);
sum=sum+i; /*累加求和,分析循环起止条件!!*/
printf(“sum=%d\n”,sum);
}
(2)在 VC++编辑环境下编辑源程序。
(3)编译直到程序没有错误。
(4)运行结果:
Eg3-2: 输入一组小于10000的整数,统计其中奇数偶数个数,直到输入的数大于10000为止。(仔细读题,注意终止条件)
(1)算法分析:可设一整型变量 x,循环的输入整数的值,若 x%2==0 即为偶数,否则是奇数。
提示:循环条件可在 while 语句后的括号中出现,也可以用 break 语句控制。
(2)根据分析结果写出源程序。
#include
void main( )
{
int x,xo=0,xj=0 ; /* 将偶数个数 xo 与奇数个数 xj 赋 0 值 */
printf("请输入一个不大于10000的整数(超过则程序结束):");
scanf("%d",&x); /* 先输入一个整数 */
while(x<10000) /* 输入不是回车时循环 */
{
if (x%2==0)
{
xo=xo+1 ;
printf("%d是偶数\n",x);
}
else
{
xj=xj+1 ;
printf("%d是奇数\n",x);
}
scanf("%d",&x); /* 循环输入其余整数 */
}
printf("输入的偶数共有%d个,输入的奇数共有%d个\n",xo,xj);
}
以上程序调试运行成功后,改为for循环结构
请将程序运行结果粘贴至下面:
三、实验内容二(综合及类)
Eg3-3:输入一个整数n,求n!
用循环结构编程:
请将源程序及运行结果粘贴至下面:
源程序:
#include
void main()
{
int n,i,j=1;
printf("请输入一个整数\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
j=j*i;
printf("输入数的阶乘为:%d\n",j);
}
输入 8;
运行结果:
Eg3-4: 输出10~20000之内的所有的质数,并统计输出其个数。
提示:算法请参考。统计个数的方法:每当找到一个质数将其输出时,个数就加1个。(双重循环)
请将程序及运行结果粘贴至下面:
程序:
#include
main()
{long m,j,i=0;
printf("所有质数是:\n");
#include
main()
{long m,j,i=0;
printf("所有质数是:\n");
for(m=10;m<=20000;m++)
for(j=2;j<=m-1;j++)
{if(m%j==0) break;
else
{i++;
printf("%10ld",m);
break;
}
}
printf("\n");
printf("质数个数为:%ld\n",i);
}
运行结果:
Eg3-5: 编写程序计算:从公元1年至今年(包含2012年),共经历了多少个闰年,多少个平年。
算法分析:用一个从1到2012的循环,进行验证,如果满足闰年的条件,即能被4整除但不能被100整除,或能被400整除,则为闰年;否则为平年。循环中可参照EG3-4中,用两个变量分别存放平年与闰年的数目。(闰年的判断参考实验二)
(1)请将源程序粘贴到下面。
#include
void main()
{
int a,b=0,c=0;
for(a=1;a<=2012;a++)
{
if(a%4==0 && a%100!=0)
b++;
else if(a%400==0)
b++;
else
c++;
}
printf("从公元1年至2012年共经历了%d个闰年,%d个平年\n",b,c);
}
(2)程序运行结果抓图至下方:
Eg3-6: 编程:
要求打印九九表如下格式:
1*1=1 1*2=2 ….. 1*8=8 1*9=9
2*1=2 2*2=4 …… 2*8=16
…..
9*1=9
(1)请将源程序粘贴到下面。
#include
void main()
{int i,j,k;
for(i=1;i<=9;i++)
{
for(j=1;j<=10-i;j++)
{
k=i*j;
printf("%3d*%d=%d",i,j,k);
}
printf("\n");
}
}
(2)程序运行结果:
本文档为【C语言循环作业】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。