5-3 循环结构程序设计
C语言程序设计实验报告模版——实验5 循环控制
#include <stdio.h>
void main( )
{
int i,j ;
/*定义循环控制变量*/
for(i=1;i<=4;i++)
{
for(j=1;j<=4-i;j++)
prinf(" ");
/*输出4-i个空格*/
for(j=1;j<=2*i-1;j++)
printf("*");
提示:循环条件可在while语句后的括号中出现,也可以用break语句控制。
2)根据分析结果写出源程序。
程序一:
#include<stdio.h>
void main( )
{
int x,xo=0,xj=0 ;
/*将偶数个数xo与奇数个数xj赋0值*/
scanf("%d",&x);
/*先输入一个整数*/
{
int x,xo=0,xj=0 ;
/*在循环内部用break语句控制循环条件*/
while(1)
{
scanf("%d",&x);
if(x=='\n')break ;
if(x%2==0)xo=xo+1;
else xj=xj+1 ;
}
printf("xo:%d,xj:%d",xo,xj);
}
分析:
(2)打印如下图案
printf("\n");
}
}
程序结果如下图:
四、实验心得(体会):
Java程序设计教程第3章3.3 循环结构(一)
循环条件
System.out.println("上午阅读教材!"); System.out.println("下午上机编程!\n"); System.out.print("合格了吗?(y/n):"); answer = input.next(); } System.out.println("完成学习任务!");
System.out.println(“第4遍写:好好学习,天S天y向ste上m!.o"u);t.println("第" +i+ "遍写: 好好学习,天天向上!");
……
i ++;
System.out.println(“第9999遍写:好好学} 习,天天向上!");
System.out.println(“第10000遍写:好好学习,天天向上!");
while (循环条件){ 循环操作
}
while循环先判断,再执行 不适合描述此故事
do { 循环操作
}while ( 循环条件 );
25/38
语法
先执行一遍循环操作
什么是do-while循环
do {
循环操作
真
} while ( 循环条件 );
分号不可少
符合条件,循环继续执行;否则,循环退出
循环操作
决定写一万遍“好好学习,天天向上!” ,怎么办?
3/38
为什么需要循环2-2
没有使用循环结构 使用while循环
System.out.println("第1遍写:好好学习i,nt天i 天= 1向; 上!");
C语言程序设计课件 第4章 循环结构.ppt
while语句
语法形式:
while (表达0(式假)) 表达式?循环体;
非0(真) 循环体
后续语句
11
执行过程:
step1:求解表达式,若 为0(假),则退出循 环执行后续语句。若 为非0(真),则执行 循环体。
step2: 转回step1继续 判断。
while语句应用实例
【例4.3】从键盘上读入一个非0的整数,统计该数的
语句功能
{count++; number=number/10;
?
}
printf ("It contains %d digits.\n",count);
}
12
while语句应用实例
【例4.4】计算表达式a+aa+aaa+…+aaa…a,其中a与x的值从 键盘上输入。
int a,x;
long sum=0,n=1,tn;
scanf("%d,%d", &a,&x);
tn=a; while(n<=x) {sum+=tn; tn=tn*10+a; n++;
循环次数 第1次 第2次 第3次 第4次
循环条件 1<=4为真 2<=4为真 3<=4为真 4<=4为真
}
第5次
5<=4为假
sum值
tn值
n值
0+2
2*10+2
2
2+22
C语言程序设计
第4章 循环结构
本章主要内容
1. 循环结构设计理念 2. for循环语句 3. while循环语句 4. do…while循环语句 5. 循环嵌套 6. 流程控制语句
C语言程序设计_05循环结构程序设计
5.2 DO…WHILE循环结构 5.2.1 DO…WHILE语句的格式 DO…WHILE语句的一般格式为: DO 语句 WHILE(表达式); DO…WHILE语句中的表达式表示循环的条件,可 以是任何表达式,常用的是关系表达式和逻辑表达 式。表达式必须加圆括号。语句是重复执行的部分, 称作循环体。
由亍循环体在表达式2乊后表达式3乊前执行所以把循环体语句放在表达式3的开头循环体语句不原来的i构成逗号表达式作为循环语句新的表达式3从而也就没有循环体语句了
第5章 循环结构程序设计
5.1 WHILE循环结构 5.2 DO…WHILE循环结构 5.3 FOR循环结构 5.4 与循环有关的控制语句 5.5 3种循环语句的比较 5.6 循环的嵌套 5.7 循环结构程序举例 本章小结
图5-6 FOR语句执行过 程
FOR语句的执行过程如图5-6所示。具体由以下几步 完成: (1)求表达式1。 (2)求表达式2,并判定其值为0或非0。若值为非0, 转步骤(3);否则结束FOR语句。 (3)执行语句,然后求表达式3。 (4)转向步骤(2)。 由FOR语句的执行流程可知,表达式1的作用是为循 环控制的有关变量赋初值,表达式2是循环控制条件, 表达式3用于修正有关变量,语句是重复执行部分。
【例5.7】输入20个数,求出其中的最大值与最小值。
5.3.3 FOR语句的各种变形 1.在FOR语句中省略表达式 FOR语句中的3个表达式可以部分或全部省略,下面 给出语句的4种基本变形。 (1)表达式1移至FOR语句前,但它后面的分号必 须保留。这时FOR语句的形式为: 表达式1; FOR(; 表达式2; 表达式3) 语句
(2)表达式3移至循环体语句之后,但它前面的分 号必须保留。FOR语句的形式为: FOR(表达式1; 表达式2;) { 语句; 表达式3; } 对于求P=5!的程序段,省略表达式3,将其放在循环 体中,则程序段写成:
第5章 循环结构1
说明:
(3)最简单的应用形式: for(循环变量赋初值;循环条件;循环变量增值) 例如:for(i=1;i<=10;i++) sum=sum+i; (4)三个表达式均可缺省,但起分割作用的两个分号 不可省略。 例如:for( ; ; ) i=1;for(;i<=10;i++) sum=sum+i; 或 for(i=1;i<=10;) {sum=sum+i;i++;} • 表达式1省略,应在for之前对循环变量赋初值 • 表达式2省略,则不判断条件,循环无终止进行下去 • 表达式3省略,则应另设法保证循环的结束
5.4
循环的嵌套
一个循环体内又包含另一个完整的循环结构称为循 环的嵌套。
① while() {… while() {…} } ② do {… do {…} while(); } while() ; ③ for(;;) { for(;;) {…} }
5.4
④ while() {… do {…} while(); … } 说明:
在许多问题中都需要用到循环结构,如
要求计算全校每个学生的平均成绩,计算两 个正整数的最大公约数和最小公倍数等都需
要用到循环控制。C语言中有三种循环语句, 分别是while语句、do…while语句和for语 句。
5.1 while循环语句
while循环语句是用来实现“当型”循环结构的。 它的特点是先判断表达式,后执行语句。 格式: while(表达式) 语句; 该语句的执行顺序是:先计算表达式的值,再判 断其值是否为“真”(即非0)。若结果为“真”, 则执行语句;此过程重复执行,直到表达式的值为 “假”(即为0)时,结束循环。其流程图和N-S图 分别如图5-1和5-2所示。
项目五 循环结构程序设计
图5-10 多循环的并列与嵌套
任务4 掌握循环结构程序设计实例
【例5-7】输出10~100之间的全部素数。所 谓素数n,是指除1和n之外,不能被2~(n-1) 之间的任何整数整除。 算法设计要点: (1)显然,只要设计出判断某数n是否是素 数的算法,外面再套一个for循环即可。
(2)判断某数n是否是素数的算法:根据素数 的定义,用2~(n-1)之间的每一个数去整除n, 如果都不能被整除,则表示该数是一个素数。 判断一个数是否能被另一个数整除,可通过判 断它们整除的余数是否为0来实现。
二、continue语句 continue语句的一般形式为: continue; continue只能用在循环语句中,它的功能是 结束本次循环,跳到循环体中下面尚未执行的语 句,接着进行下次是否执行循环的判定。
continue语句的功能:对于for循环,跳过循环 体其余语句,转向循环变量增量表达式的计算;对 于while和do-while循环,跳过循环体其余语句,但 转向循环继续条件的判定,也就是说continue语句 用在循环中时不会强制退出循环,但它会跳过循环 体中剩余的部分而转去循环的结尾部分,强制开始 下一轮循环。
普通高等教育“十二五”规划教材·计算机专业
C语言程序设计
主编 刘孟强 李思广
兴趣是最好的老师
知识有限创意无限 欢迎大家学习
C语言程序设计
项目五 循环结构程序设计
任务1 掌握循环结构语句
任务2 掌握break与continue语句
任务3 掌握多重循环
任务4 掌握循环结构程序设计实例
任务1 掌握循环结构语句
由于循环结构在现实生活中和数学运算中比 较常用,并且较之顺序结构和选择结构比较难, 所以要认真学习这一项目。
Python语言程序设计第五章循环结构程序设计
14
第5章
循环结构程序设计
5.2 for语句 结构
1. for语句一般形式: for 目标变量 in 序列对象: 循环体语句 说明:
for语句的首行定义了目标变量和遍历的序 列对象,后面是需要重复执行的语句块。语 句块中的语句要向右缩进,且缩进量要一致。
15
第5章
循环结构程序设计
注意:
(1)for语句是通过遍历任意序列的元素来建立 循环的。 (2)for 语句也支持一个可选的else块,一般格 式如下: for 目标变量 in序列对象: 语句块 else: 语句
5
第5章
循环结构程序设计
在while语句中使用else子句
while exp: 循环体 else: 语句
Python可以在循环语句中使用else子句,即构 成了while.......else循环结构。
6
第5章
循环结构程序设计
例 :求
100
n 1
n
开始 sum,n=0,1 n<=100
1)问题分析:
29
第5章
循环结构程序设计
5.4 循环控制语句
有时候我们需要在循环体中提前跳 出循环,或者在某种条件满足时,不执行 循环体中的某些语句而立即从头开始新的 一轮循环,这时就要用到循环控制语句 break、continue和pass语句。
30
第5章
循环结构程序设计
(1) break语句
一般格式 break 功能
371printdddijk40728python语言程序设计第5章循环结构程序设计第5章循环结构程序设计循环结构程序设计51while语句当型循环52for语句结构53循环的嵌套54循环控制语句55循环结构程序举例2第5章循环结构程序设计循环结构的基本类型exptaf
C语言程序设计:第5章-循环结构-课件教案
C语言程序设计课件教案第五章循环结构教学目的掌握循环结构中的while语句、dowhile语句、for语句的用法,掌握中断语句中break和continue语句的用法。
教学要求1.熟练掌握while语句、dowhile语句、for语句2.熟练掌握break语句、continue语句重点和难点1.while语句、dowhile语句、for语句的使用2.break语句、continue语句的使用教学支撑环境与教学资源:1.笔记本电脑2.VC20103.投影仪教学方法讲授法、练习法、讨论法授课课时6课时教学过程AM一、课程引入计算1+2+3+...+n有几种方法,需要多少步骤?、循环结构语句什么时候用到循环结构:处理重复的问题的时候。
循环结构的三大语句:while语句、dowhile语句、for语句。
1.while语句while(循环条件表达式)循环体语句;执行过程:只有循环条件表达式的值为真就执行循环体语句,先判断后执行。
1.输出1---n之间的数intmain(void){inti=1;intn=0;printf("请输入n的值:");scanf("%d",&n);//1015while(i<=n)15printf("%d\n",i);i++;}return0;}2.计算m+...+n 的值intmain(void){inti=1;intn=0;intm=0;intsum=0;printf("请依次输入m 和n 的值:");scanf("%d%d",&m,&n);//m+...n10while(m<=n){sum=sum+m ;m++;}printf("sum=%d\n",sum);return0;}2.do...while 语句do循环体语句;}while(循环条件表达式);执行过程:先执行循环体语句,再检查循环条件表达式的值是否为真,如果为真则继续执行循环体语句,否则结束循环。
第5章3 循环程序设计
LENTH
DATA CODE
DW ?
ENDS SEGMENT
ASSUME
START:MOV
CS: CODE, DS: DATA
AX, DATA
MOV DS, AX
MOV MOVG CX, 0 [SI], 0;比较 DONE
;装载字符串指针
;设置计数器初值 ;字符串结束,转向DONE保存结果
SEGMENT DS: DATA, CS: CODE
START:
MOV MOV AX, DATA DS, AX
MOV L0: CMP JZ CMP JZ INC
SI, 0 STRING[SI], 0 NOTFOUND FOUND SI
;SI用作字符串字符指 ;未找到,转“NOTFOUND” ;字符串未结束,未找到,继续 ;修改指针 ;保存位置值
INC
INC JMP
SI
CX TST
;修改指针
;计数 ;转向TST,继续循环
DONE: MOV
JMP CODE
LENTH, CX
$ ENDS
;保存结果
END
START
比较一下,您喜欢这种风格吗?
……
MOV MOV SI, OFFSET STRING-1 CX, -1 ;装载字符串指针 ;装载计数器初值
(3)修改部分:修改指针、计数器的值,为下一次循环做准备。 (4)控制部分:判断循环条件,结束循环或继续循环。
按照循环结束的条件,有以下两类循环: 计数循环:循环的次数事先已经知道,用一个变量(寄存器 或存储器单元)记录循环的次数(称为“循环计数 器”)。进行减法计数时,循环计数器的初值直接设为
循环次数,每循环一次将计数器减1,计数器减为0时,
实验五 循环结构程序设计
实验五循环结构程序设计一、实验目的(1)掌握使用while语句,do-while语句和for语句实现循环的方法。
(2)掌握在循环结构中使用break与continue语句的方法。
(3)掌握多重循环的使用方法。
二、实验步骤、数据记录及处理(1)编写程序输出半径为1到15的圆的面积,若面积在30到100之间则予以输出,否则,不予输出。
程序代码:#include<stdio.h>int main(){int i;float area;for(i=1;i<=15;i++){area=3.14*i*i;if(area<30) continue;else if(area>100) break;printf("半径为%d的圆的面积为%6.2f\n",i,area);}return 0;}运行结果:(2)输入一个正整数x(可以是1-9位的正整数),将其转换为逆序正整数y输出,例如输入x的值为3456,则输出y的值6543。
程序代码:#include<stdio.h>int main(){int num,temp,i=0;printf("请输入一个数字:");scanf("%d",&num);while(num>0){temp=num%10;++i;printf("%d",temp);num=num/10;}printf("\n这个数是%d位数",i);return 0;}运行结果:(3)编写程序,分行输出斐波那契Fibonacci数列的前20项(每行5个数)。
说明:斐波那契序列:1,1,2,3,5,8,13,21,……题目扩展(选做):求Fibonacci数列中小于t的最大的一个数,其中t由键盘输入。
例如:输入t=1000时,则输出987。
程序代码:#include <stdio.h>void main(){int i,a[20];a[0]=1;a[1]=1;for(i=2;i<20;i++)a[i]=a[i-1]+a[i-2];i=0;while(i<20){printf("%d\t",a[i++]);if(i%5 == 0)printf("\n");}}运行结果:(4)编写程序,输出“九九乘法口诀表”。
【实验指导书】实验3:循环结构程序设计-20150706
实验三:循环结构程序设计一、实验目的:1. 熟练使用for()、while()和do-while()三种语句实现循环程序设计;2. 理解循环条件和循环体,以及体会for()、while()和do-while()语句的相同及不同之处;3.掌握break和continue语句的使用。
二、实验要求:1. 参照《附件一:确定循环次数的程序设计》,完成相应的题目要求(共5题);2. 水仙花数是指各位数字的立方和等于该数本身的三位数。
例如,153是水仙花数,因为153=13+33+53。
请编程计算并输出所有的水仙花数,每个数占一行。
输出样例:153370371407#include<stdio.h>int main(){int s,d,z,i;for(i=100;i<=999;i++){s=i/100;d=i/10%10;z=i%10;if(i==s*s*s+d*d*d+z*z*z)printf("%d\n",i);}return 0;}3. 编写程序,输入一批正整数(以零或负数为结束标志),求其中的偶数和。
要求:使用while()语句实现此程序。
输入样例:1 2 3 4 5 0输出样例:6输入样例:-1输出样例:0#include<stdio.h>int main(){int n ,sum=0;while(scanf("%d",&n),n>0){if(n%2==0)sum+=n;}printf("%d",sum);return 0;}4.古代《张丘建算经》中有一道百鸡问题:鸡翁一,值钱五;母鸡一,值钱三;鸡雏三,值钱一。
百钱买百鸡,问鸡翁、母、雏各几何?其意为:公鸡每只5元,母鸡每只3元,小鸡3只1元。
请用穷举法编程计算,若用100元买100只鸡,则公鸡、母鸡和小鸡各能买多少只。
输出样例:0 25 754 18 788 11 8112 4 845.一球从100米高度自由落下,每次落地后反弹回原高度的一半,然后再落下再反弹。
第5章 循环结构程序设计
例5.8 例5.9 例5.10 例5.11 例5.12
– 三种循环的比较:
• 三种循环可用来处理同一问题,一般它们可以互相代替。 • do-while循环类似于while循环。do-while循环至少要执 行一次循环体,而while和for循环在进入循环体之前,首先 要判断循环条件,如果条件不成立,则循环体一次也不执 行就结束循环流程。 • while和do-while循环,在while后面指定循环条件。而 for循环可以在表达式3中包含促使循环结束的操作,甚至可 以将循环体中的操作全部放到表达式3中。 • 用while和do-while循环时,循环变量初始化的操作应在 while和do-while之前完成。而for语句可以在表达式1中实 现循环变量的初始化。 首页 上一页
5.2 实现循环结构的语句
• while语句
while语句用于构成“当型”循环结构。 形式: while (表达式 表达式) 表达式 {循环体语句 循环体语句 } 其流程如右图所示: 例5.1 例5.2
–
关于while循环结构的注意事项:
• while循环结构的特点是“先判断,后执行”。 • 若循环体中包含多个语句,则应以复合语句的形式出现。 • 循环体内要有促使循环结束的条件。否则会形成“死循 环”。 • 为使循环能正确开始运行,要做好循环前的准备工作。 首页 上一页
5.3 循环嵌套的概念及实现
循环的嵌套是指:在一个循环体内又包含了另一个完整的循 环结构。三种循环不仅可以自身嵌套,而且还可以互相嵌套。 例5.6 例5.7
– 使用循环的嵌套结构的注意事项
• 外层循环应“完全包含”内层循环,不能发生交叉。 • 嵌套的循环控制变量一般不应同名,以免造成混乱。 • 嵌套的循环要注意正确使用“缩进式”书写格式来明 确嵌套循环的层次关系,以增加程序的可读性。
C言语课件-第5章 循环结构程序设计
C言语课件-第5章 循环结构程序设计
循环结构的概念
1 基本概念
循环结构是一种程序设计结构,用于重复执 行特定的代码块。
2 分类
循环结构可以分为while循环、do while循环和 for循环。
3 循环流程控制结构
循环结构由控制条件、循环体和循环控制语 句组成。
3 下一学习步骤建议
提供学习者下一步继续深入学习的建议和资源。
4 循环的几种实现方式
循环可以通过不同的控制条件和循环体实现 不同的功能。
while循环
1 语法格式
while(条件表达式) { // 循环语句块
}
2 例子讲解
使用while循环计算1到100的和。
do while循环
1 语法格式
do { // 循环语句块
} while(条件表达式);
2 例子讲解
1 游戏规则
玩家猜测计算机生成的随 机数字,根据提示进行猜 测,直到猜对或者达到最 大次数。
2 代码实现分析
介绍猜数字游戏的代码实 现思路和算法。
3 代码实现细节讲解
详细演示如何使用循环结 构实现猜数字游戏。
小结
1 学习重点回顾
回顾循环结构的概、语法和应用场景。
2 学习难点梳理
梳理学习过程中遇到的难点和需要进一步掌握的知识点。
1 break语句
用于跳出循环体,终止循环的执行。
2 continue语句
用于跳过本次循环的剩余代码,继续下一次 循环。
循环小结
1 循环的优缺点
循环结构可以使代码更简洁、高效,但滥用可能导致逻辑错误和性能问题。
2 循环应用的场景举例
循环结构常用于处理数组、列表、文件等需要重复操作的情况。
《C语言程序设计》课件 《C语言程序设计》课件 第5章-循环结构程序设计
Page 28
参考代码
#include<stdio.h> void main() {
char ch; int char_num=0,int_num=0,other_num=0; while((ch=getchar())!=‘\n’) //回车键结束输入 {
if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z') char_num++;
printf("************\n ");
printf("************\n ");
printf("************\n ");
printf("************\n "); printf("************\n "); 等价 for(int i=1;i<=8;i++)
{ s=s+i;
i++; //表达式3移至循环体末尾
}
printf("s=%d",s);
}
<<C语言程序设计>>
Page 19
随堂练习
例 编程计算n的阶乘。
n!=1 2 3 ……〔n-1〕 n
思路:
类似于累加求和,每一次循环乘上一个数字,求和 将和初始化为0,这里应把积初始化为?
<<C语言程序设计>>
#include "stdio.h" void main( ) { int i,sum=0;
5 循环结构程序设计
5 循环结构程序设计本章重点:• while 语句及其构成的循环结构• do-while语句及其构成的循环结构• for语句及其构成的循环结构• break语句和continue语句• 多重循环结构的实现本章难点:• for循环结构• 多重循环结构的实现5.1 概述循环结构是高级语言程序设计中一种重要的、常用的控制结构,主要用于解决那些需要重复执行的操作。
循环结构是在重复性的操作过程中找到规律,然后按照指定的条件重复执行某个指定程序段的控制方式,也称重复结构。
其特点是在给定条件成立时,反复执行某程序段,直到条件不成立为止。
其中给定的条件称为循环条件,反复执行的程序段称为循环体。
C语言中常见的循环结构语句有以下三种。
(1) while语句(2) do-while语句(3) for语句另外,使用goto语句与if语句一起也可以构成循环结构。
goto语句也称为无条件转移语句,其一般格式如下:goto 语句标号;……标号:语句……说明:其中语句标号是按标识符规定书写的符号,放在某一语句行的前面,标号后加冒号(:)。
语句标号起标识语句的作用,与goto 语句配合使用。
如: loop: i=i+1;C语言不限制程序中使用标号的次数,但各标号不得重名。
goto语句的语义是改变程序流向,转去执行语句标号所标识的语句。
例5-1 用goto语句构造循环计算1到100的整数和。
算法分析:这是一个求连续数累加和的问题。
sum用来存放两数的和,初值为0,i用来表示下一个要进行求和的数。
main(){int i=1,sum=0;loop:sum=sum+i;i++;if(i<=100)goto loop;printf("the sum of 1 to 100 is:%d\n",sum);}运行结果如下:the sum of 1 to 100 is:5050本例用if语句和goto语句构成循环结构。
北京航空航天大学《C语言程序设计》课件-第五章循环结构程序设计
2023/4/2
5.3 do-while语句
15
语句一般格式
do
{语句组} while (表达式);
功能:
– 先执行内嵌语句(循环体),之后计算 表达式的值,不为0(逻辑真)时,再 执行循环体并判断条件,直到表达式的 值为 0 结束循环,转去执行while下面 的语句。
2023/4/2
do-while循环的算法
for(n=100;n<=200;n++) {
if (n%7!=0) continue;
printf("%6d",n); j++; if (j%10==0)
printf("\n"); } printf(" \n j=%d\n",j); }
29
2023/4/2
5.5.2 循环中break的应用
30
功能:
}
无循环体
} 循环体
2023/4/2
5.5 循环结构中的跳转语句
25
有如下三种语句实现跳转: – continue语句 – break语句 – goto语句
功能:在循环语句的循环体中使用,可 以进行循环的流程控制
2023/4/2
5.5.1 continue语句及应用
26
功能:
– 中断循环体的本次执行(即跳过循环体中尚未 执行的语句),立即开始执行下一次循环。
– 利用break语句能够强迫终止本层循环, 转到后续语句执行。
while语句
表达式? N
Y
… break;
…
do-while语句
… break;
…
表达式? N
Y
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北京建筑工程学院
计算机教学与网络信息部计算机程序设计基础实验报告
实验5-3:实验名称循环结构程序设计(三) 实验地点大兴基础楼B座201
姓名张三专业土木工程班级土081 学号 2 日期2009.04.21
【实验目的】
(1)掌握循环嵌套和多重循环的使用
(2)掌握基本输入和输出多组数据的常用方法
【实验要求】
(1)掌握循环嵌套和多重循环的使用
(2)掌握基本输入和输出多组数据的常用方法
【实验环境】
(1) Microsoft XP操作系统
(2) Microsoft VC++ 6.0
【实验内容】
1.自然数的和之和
/acmhome/problemdetail.do?&method=showdetail&id=3063
题目描述:计算S=1+(1+2)+(1+2+3)+…+(1+2+…+N).已知N,要求写程序求出S。
输入:
第一行有1个整数T,表示有T组测试数据。
第二行~第T+1行,每行有1个整数N,1<=N<=200。
输出:对于每组输入数据,输出一行,包含一个整数,即此时S的值。
样例输入:
2
1
200
样例输出:
1
1353400
2.美食节之敲诈
/acmhome/problemdetail.do?&method=showdetail&id=2877
题目描述:
临海每年都会在临海体育馆举办一次美食节,可能xzc太宅了,大二才知道,虽然知道的有点晚了,但是不妨碍xzc好好吃一顿,可是很不巧啊,xzc忘了带money 了,为什么那么多香气腾腾的美食,xzc无耻的向同行的帅哥美女们打起了主意,但是打秋风的事是可一而不可再的,碍于脸面关系,每个人最多只请客x元,给出与xzc一同去逛美食节的人数n,以及n个人每个人所带的钱数,请你计算出xzc在美食节上最多能敲诈多少元?说明:X可能大于携带的money。
输入:
输入含多组数据,每组数据含两行,第一行有两个整数n和x,以空格分开,n 代表去美食节的人数,x代表xzc最多向其他人每个人敲诈x元;第二行为n个正整数,分别代表n个人每个人携带的money数量。
输入直到文件结束为止(即EOF)。
输出:每组输出数据占一行,即输出xzc在美食节上最多能敲诈的money数量。
样例输入:
5 2 // n,x
1 2 3 4 5 // m
样例输出:
9
提示:
while(n--){ if(m>=x)sum+=x;else sum+=x;}
3.水仙花数
/acmhome/problemdetail.do?&method=showdetail&id=1372
题目描述:
春天是鲜花的季节,MM们也是花枝招展,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。
现在要求输出所有在m和n范围内的水仙花数。
输入:
输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。
输出:
对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;如果给定的范围内不存在水仙花数,则输出no;每个测试实例的输出占一行。
样例输入:
100 120
no
370 371
4.自然数对
/acmhome/problemdetail.do?&method=showdetail&id=3062
题目描述:
知道2个自然数A,B,如果A+B,A-B都是平方数,那么A,B就是自然数对。
要求写程序判断给定的2个数A,B是否为自然数对。
输入:
第一行有1个整数T,表示有T组测试数据。
第二行~第T+1行,每行有2个数据A,B,其中0<=A+B<=2^31且A>B。
输出:
对于每组测试数据输出一行,包含"YES"或者"NO"。
"YES"表示该数对是自然数对,否则输出"NO"。
样例输入:
2
17 8
3 1
样例输出:
YES
NO
提示:
sqrt((a+b)*(a+b))= =(a+b) && sqrt((a-b)*(a-b))= =(a-b) ? YES : NO
5.切蛋糕
/acmhome/problemdetail.do?&method=showdetail&id=3299
题目描述:
今晚是GG的生日,大家的口福又来了哦,蛋糕可是少不了的,不过这蛋糕可不是人人都有的吃的哦,你得费点脑筋呢,只要你能用n刀切出最多块数的蛋糕(刀子每次都垂直于桌面),你就可以吃到美味的蛋糕了哦,(注意:切出的蛋糕大小可以不等)。
怎么样,相信聪明的你吃到这块蛋糕应该不是问题吧?
输入:输入包括多组数据,每组数据就是要切的刀数n(n<10000);
输出:每组输出切成的蛋糕数m
样例输入:
1
2
56
6.母牛的故事
/acmhome/problemdetail.do?&method=showdetail&id=1376
题目描述:
有一头母牛,它每年年初生一头小母牛。
每头小母牛从第四个年头开始,每年年初也生一头小母牛。
请编程实现在第n年的时候,共有多少头母牛?
输入:
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。
n=0表示输入数据的结束,不做处理
输出:对于每个测试实例,输出在第n年时母牛的数量。
每个输出占一行。
样例输入:
2
4
5
样例输出:
2
4
6
7.素数的判定
/acmhome/problemdetail.do?&method=showdetail&id=1374
题目描述:
对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x,y<=50),判定该表达式的值是否都为素数。
输入:
输入数据有多组,每组占一行,由两个整数x,y组成,当x=0,y=0时,表示输入结束,该行不做处理。
输出:
对于每个给定范围内的取值,如果表达式的值都为素数,则输出"OK",否则请输出“Sorry”,每组输出占一行。
样例输入:
0 0
样例输出:
OK
8.素数
/acmhome/problemdetail.do?&method=showdetail&id=1098题目描述:输出100->200之间的素数的个数,以及所有的素数。
输入:无
输出:100->200之间的素数的个数,以及所有的素数。
样例输入:
样例输出:
21
101 103 … 197 199
9.打印菱形
/acmhome/problemdetail.do?&method=showdetail&id=1172题目描述:从键盘输入一个整数n(1≤n≤9),打印出指定的菱形。
输入:正整数n(1≤n≤9)。
输出:指定菱形。
第一行前面有n-1个空格,第二行有n-2个空格,以此类推。
样例输入:
5
样例输出:
*
***
*****
*******
*********
*******
*****
***
*
10.打印直角三角形
/acmhome/problemdetail.do?&method=showdetail&id=1462
题目描述:从键盘输入一个整数n(1≤n≤9),打印出指定的菱形。
输入直角三角形的直角边长度(两个直角边相同),打印输出该图形。
如输入5,输出下列图形:
*
**
***
****
*****
输入:
输入数据第一行为n,表示一共有n组数据输入,后面有n行,每行表示直角边长度(两个直角边相同)。
输出:以*字符来打印输出直角三角形图形。
样例输入:
3
1
2
3
样例输出:
*
*
**
*
**
***
【实验方法】
1.自然数的和之和
【源代码】
【运行结果】
【结论】
2.美食节之敲诈
【源代码】
【运行结果】
【结论】3.水仙花【源代码】
【运行结果】【结论】
4.自然数对【源代码】
【运行结果】【结论】
5.切蛋糕【源代码】
【运行结果】【结论】
6.母牛的故事【源代码】
【运行结果】
【结论】
7.素数的判定
【源代码】
【运行结果】
【结论】
8.素数
【源代码】
【运行结果】
【结论】
9.打印菱形
【源代码】
【运行结果】
【结论】
10.打印直角三角形
【源代码】【运行结果】【结论】【成绩评定】。