循环编程2.docx
- 文档编号:14256428
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:16
- 大小:18.28KB
循环编程2.docx
《循环编程2.docx》由会员分享,可在线阅读,更多相关《循环编程2.docx(16页珍藏版)》请在冰点文库上搜索。
循环编程2
复习:
1.顺序结构
输入_运算(公式)_输出
公式:
2.选择结构
条件,操作
找到条件及操作
套用选择结构
If()….
If()else()
If()elseif()…elseif()..elseif()…else()..
Switch()
{
Case
Default
}
3.循环
(1)概念:
条件(),重复操作
(2)循环过程
(3)
For(循环初始化条件;循环条件;持续循环条件)
{
循环体
}
循环初始化条件;
For(;循环条件;)
{
循环体;
持续循环条件;
}
第一部分运行程序分析运行结果
1.
#include
#include
intmain()
{
intx;
intcount=1;
for(x=1;x<=50;x=x+5)
{
count++;
}
printf("%d,%d\n",count,x);
system("pause");
return0;
}
2.#include
#include
intmain()
{
intx;
intcount=1;
for(x=1;x<=50;x++)
{
if(x%10!
=0)
{
printf("%4d",x);
}
else
{
printf("\n");
}
}
system("pause");
return0;
}
3.
#include
intmain()
{
inti,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{
case0:
m++;n++;break;
case10:
n++;break;
default:
k++;n++;
}
printf("%d%d%d\n",m,n,k);
return0;
}
4.写出运行结果
#include
intmain()
{
inti,j;
intf;
for(i=1;i<=3;i++)
{
for(j=10;j<20;j++)
{
f=i*j;
printf("%4d",f);
}
printf("\n");
}
return0;
}
5.写出运行结果,提示break语句是提前中断循环,强行结束循环。
continue语句是中断本次循环,即循环到continue这个语句时,本次循环中断,continue后面的循环体内容不再执行。
#include
intmain()
{
inta=1,b;
for(b=1;b<=10;b++)
{
if(a>=8)
break;
if(a%2==1)
{
a+=5;
continue;
}
a-=3;
}
printf("%d\n",b);
return0;
}
6.While语句格式如下,将下面程序用while语句实现
循环初始化条件
while(循环条件)
{
循环体
持续循环条件
}
#include
voidshowNumber(intn);
intmain()
{
intn1,n2;
n2=12345;
for(;n2!
=0;)
{
n1=n2%10;
printf("-%d",n1);
n2=n2/10;
}
printf("\n");
return0;
}
第二部分例题
1.累加问题,分析下面程序,完成编程题1、2
求sum=1+2+3+4+5+…+100和
编程案例分析:
一、明确问题
1.求sum=1+2+3+4+5+…+100和
对问题的理解一:
求n个数的和,分式是sum=sum(是前n-1个数和)+n;
对问题的理解二:
用固定公式求
对问题的理解三:
即从键盘输入1到100个数求和,那如果是10000个数呢,输入是多麻烦的
……
最后明确核心程序结构是什么:
顺序的,还是选择的,还是循环的,本例是循环
二、明确未知,即所求的数据是什么
所求:
多个数的和
定义变量:
这种求和变量,是一定要初始化的,往往初始化0
intsum;
sum=0;
三、明确已知
分析已知数据特点,已知数据是:
1、2、3、4、…100,都是整数,用一个变量存储,
定义变量:
intI;
四、为已知变量提供值
也就是为i提供值,方式通过赋值加循环来进行
五、运行过程与公式
由于是循环问题,所以要两件事:
1.判断是计数循环还是非计数循环
本例是计数循环,是计数循环就得有循环变量,也就是已知定义的变量i.,确定计数循环变量,数据范围,初值、终值、增量(分析数据特点即可得到),本例中i值为1,终值为100,增量为1
2.确定循环过程
由于是计数循环,所有根据计数循环变量的变化来确定过程,有时循环变量出现在循环体中,也可能不出现在循环体中。
当循环变量i=1时:
求1的和,公式:
sum=sum+i;
当循环变量i=2时:
求1+2的和,公式:
sum=sum+i;
当循环变量i=3时:
求1+2+3的和,公式:
sum=sum+i;
……
当循环变量i=100时:
求1+2+3+…+100的和,公式:
sum=sum+i;
当循环变量i=101时:
结束循环
3.归纳循环体
将循环过程中的重复操作,用公式表示出来
本例:
sum=sum+i
4.明确四个要素,套用循环结构
for语句既能实现计数循环也能实现非计数循环。
for语句一般格式
(1)
for(循环初始化条件;循环条件;持续循环条件)
{循环体}
(2)
循环初始化条件
for(;循环条件;)
{
循环体
持续循环条件
}
本例:
For(i=1;i<=100,i++)
Sum=sum+I;
六、输出未知
有时也可能在循环体中就已输出,所以这个步骤不是必须的,本例:
输出和
Printf(“1+2+3…+100=%d”,sum);
七、编程
/*求sum=1+3+5+7+9+…+99和*/
一、明确问题
所:
求和
理解1:
公式1
理解2:
公式2
理解3:
n,m 循环问题: 重复操作,不断求和 判断循环类型: 计数与非计数 计数: 确定初值: 1,终值: 99,增量: 2 二、明确未知,所求 求: 和 定义变量: IntSum=0; 三、明确已知,提供哪些数据 已知: 1、3、5、7。 。 。 。 99,研一批数据特点; 定义变量(循环变量): IntI; 四、为已知,提供数据,输入数据 赋值: =,scanf() For(i=1;i<=99;i+=2) 五、运算步骤及公式 (一)循环过程 当i=1,1<99: sum=sum+1; 当i=3,1<99: sum=sum+3; 当i=5,1<99: sum=sum+5; ….. 当i=1,1<=99: sum=sum+99; 当i=101,结束循环 (二)找循环体 找到通式(循环体): sum=sum+i (三)套用for 六、输出未知数 源码: /*求sum=1+3+5+7+9+…+99和*/ #include intmain()/*主函数*/ { inti; intsum=0; for(i=1;i<=99;i=i+2) { sum=sum+i; } printf("sum=%d\n",sum); return0; } (3)从键盘输入若5个学生成绩,求其平均值并输出 /*从键盘输入若5个学生成绩,求其平均值并输出*/ #include intmain()/*主函数*/ { inti; intsum=0; intachievement; for(i=1;i<=5;i=i+1) { scanf("%d",&achievement); sum=sum+achievement; } printf("sum=%d\n",sum); return0; } 2.究举问题 (1)输出50以内能被5和3整除的数和 /*输出50以内能被5和3整除的数和*/ #include intmain() { inti,sum; sum=0; for(i=1;i<=50;i++) { if(i%5! =0&&i%3! =0) sum=sum+i; } printf("sum=%d\n",sum); return0; } 3.输出图案 /*输出如下格式*/ /* **************** **************** **************** **************** **************** */ #include intmain() { inti; for(i=1;i<=5;i++) { printf("****************\n"); } printf("\n"); return0; } 4.递推问题 求出以下分数序列的前n(从键盘输入)项之和。 2/1,3/2,5/3,8/5,13/8,21/13…和值通过函数值返回main()函数,例如,若n=5,则应输出8.391667。 /*求出以下分数序列的前n(从键盘输入)项之和。 /1,/2,/3,/5,/8,/13…和 例如,若n=5,则应输出.391667。 */ #include intmain() { intn,i; doublef1=1.0,f2=2.0,t; doublesum=0.0; scanf("%d",&n); for(i=1;i<=n;i++) { sum=sum+f2/f1; t=f1; f1=f2; f2=t+f2; } printf("sum=%lf\n",sum); return0; } 5.计数问题 A桶有油96公斤,B桶有油24斤,每日取3斤注入B桶,问几日后B桶的油是A桶油的3倍。 #include #include intmain() { intcount=1,a=96,b=24; a=a-3; b=b+3; for(;3*a! =b;) { count++; a=a-3; b=b+3; } printf("%d",count); system("pause"); return0; } 第三部分编程题 一、编程案例 二、编程题 1.求fact=1*2*3*4*5*6 2.t=1+1/2+1/3+1/4+…+1/m,其m从键盘输入 3.输入10名学生成绩,求其中最大值、最小值、平均值。 4.找出1-1000中含有个位数是7且能被7整除的整数 5.输入10名学生的考试分数(0-100),确定分数的类别,优秀(90-100)、及格(60-80)、不及格(0-59)。 6.以下程序的功能是计算: s=1+12+123+1234+12345,请填空。 #include intmain() { intt=0,s=0,i; for(i=1;i<=5;i++) { t=i+【1】; s=s+【2】; } printf("s=%d\n",s); return0; } 7.A、B两地相距240公里,有甲乙两辆汽车两地同时出发,甲车每小时行35公里,乙车每小时行25公里,计算甲,乙两车几小时相遇。 8.求pi=1-1/3+1/5-1/7+…值,当最后一项的绝对值小于10-6时为止。 9 * *** ***** *** * .编程输出如下图案 10.找出1-100之间能被3且能被2整除的数的和,若和大于30结束循环。 11.8路汽车沿线共有10站,第一站共有乘客count人,到第二站下了一半零一个人;到第三站又下了一半零一个人…到最后一站车内只剩一个人,请问count的人数是多少?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 编程
![提示](https://static.bingdoc.com/images/bang_tan.gif)