当前位置:网站首页>C语言实验五 循环结构程序设计(二)
C语言实验五 循环结构程序设计(二)
2022-07-31 05:09:00 【Meteor.792】
一、实验目的
(一)掌握使用for,while,do-while语句实现循环嵌套的方法;
(二)巩固break和continue语句的使用。
二、预习内容
预习教材中有关用for,while,do-while语句实现循环嵌套的方法以及循环嵌套的执行过程。
三、实验内容
(一)根据公式:sum=,计算sum的值。
注意:根据题目,考虑所定义的各个变量应该为何种类型。
编程提示:定义一个变量存放最后的求和结果(假设为sum),sum的数据类型应为实型,定义变量t计算整数的阶乘。使用双重循环,程序的基本结构为:
for(i=1,sum=0; i<=20; i++)
{ t赋初值1 ;
for( j=1; j<=i; j++ )
变量t连乘求积;
变量sum累加t的倒数;
}
注意上述程序结构和内循环变量的终值。想一想是否可以将t=1放在外循环之前?
/* c5-1.c 求数列和 */
#include "stdio.h"
int main()
{
float sum=0; int i,j,t;
for(i=1;i<=5;i++)
{
t=1;
for(j=1;j<=i;j++)
t=t*j;
sum=sum+1.0/t;
}
printf("%f\n",sum);
return 0;
}
(二)编程输出九九乘法表。
编程提示:我们日常看到的乘法表是:
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
…
1×9=9 … … … 9×9=81
每个算式可以归为:i×j=?的形式,而且每行中的算式数量随着行数变化。考虑外层循环变量和内层循环变量应当取何值呢?
程序的基本结构为:
for( i=1; i<=9; i++ )
{ for(j=1; __________; j++ )
输出乘法算式;
输出回车换行符;
}
/* c5-2.c 输出九九乘法表 */
#include "stdio.h"
void main()
{
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
printf("%dx%d=%d ",j,i,j*i);
printf("\n");
}
}
(三)编程输出以下图形。
*
***
*****
编程提示:输出图形的这一类问题,首先要看一看图形的特点,找到规律:一共有几行,每行先输出什么字符,输出几个;后输出什么字符,输出几个。一般外循环变量控制行数,内循环变量控制各种字符的数量。
程序的基本结构为:
for(i=0; i<=2; i++)
{ 连续输出若干空格;
连续输出若干个“*”;
输出一个换行;
}
/* c5-4.c 输出字符图形 */
#include "stdio.h"
void main()
{
int i,j,n;
for(i=0;i<=2;i++)
{
for(j=0;j<=2-i;j++)
printf(" ");
for(n=0;n<=2*i;n++)
printf("*");
printf("\n");
}
}
(五)运行以下程序,分析程序的运行结果并上机验证。
/* c5-5.c 循环结构程序 */
#include "stdio.h"
void main( )
{ int i=0, a=0;
while( i<20 )
{ for( ; ; )
{ if((i%10)==0) break;
else i--;}
i+=11;a+=i;
}
printf("%d\n",a);
}
四、实验注意事项
(一)对于双重循环来说,外层循环往往是控制变化较慢的参数(例如所求结果的数据项的个数、图形的行数等),而内层循环变化快,一般控制数据项的计算、图形中各种字符的数量等。
(二)注意在循环结构程序设计中,正确使用{ }构成复合语句。
(三)外层循环变量增值一次,内层循环变量从初值到终值执行一遍。
(四)程序书写时,最好使用缩进结构以使程序结构清晰。
边栏推荐
- Linux系统安装mysql(rpm方式安装)
- docker安装postgresSQL和设置自定义数据目录
- 剑指offer专项突击版 ---- 第 6 天
- 剑指offer基础版 ----- 第28天
- Duplicate entry 'XXX' for key 'XXX.PRIMARY' solution.
- 对list集合进行分页,并将数据显示在页面中
- Goodbye to the cumbersome Excel, mastering data analysis and processing technology depends on it
- 12个MySQL慢查询的原因分析
- MySQL transaction isolation level, rounding
- SQL行列转换
猜你喜欢
MySQL优化:从十几秒优化到三百毫秒
【MQ我可以讲一个小时】
Multiple table query of sql statement
Centos7 install mysql5.7 steps (graphical version)
MySQL optimization: from ten seconds to three hundred milliseconds
centos7安装mysql5.7
110道 MySQL面试题及答案 (持续更新)
剑指offer基础版--- 第23天
The interviewer asked me TCP three handshake and four wave, I really
剑指offer专项突击版 ---- 第1天
随机推荐
MySQL-如何分库分表?一看就懂
matlab abel变换图片处理
Temporal介绍
信息系统项目管理师核心考点(五十五)配置管理员(CMO)的工作
Unity Framework Design Series: How Unity Designs Network Frameworks
CentOS7 - yum install mysql
工作流编排引擎-Temporal
Centos7 install mysql5.7 steps (graphical version)
MySQL transaction (transaction) (this is enough..)
【MySQL8入门到精通】基础篇- Linux系统静默安装MySQL,跨版本升级
What are the advantages and disadvantages of Unity shader forge and the built-in shader graph?
Unity mobile game performance optimization series: performance tuning for the CPU side
STM32 - DMA
Kubernetes加入集群的TOKEN值过期
Redis的初识
C语言如何分辨大小端
MySQL事务(transaction) (有这篇就足够了..)
Lock wait timeout exceeded解决方案
Tapdata 与 Apache Doris 完成兼容性互认证,共建新一代数据架构
剑指offer基础版 ---- 第29天