【C语言】-循环结构-for语句
for语句:
for (表达式1;表达式2;表达式3)
{
循环语句
}
- 表达式1 给循环变量赋初值
- 表达式2 为循环条件
- 表达式3 用来修改循环变量的值,称为循环步长。
for语句的执行流程:
例:编程计算:1+2+3+...+99+100的结果。
这是累加问题,累加问题的通用表达式为:S = S + T;
其中,S是一个变量,用来存储累加最后的结果,称之为累加器;T是一个表达式,代表每次需要加入累加器的中的值。
累加一般是通过循环结构实现的。循环之前要设置累加器S的初始值为0。
累加项T可以是很简单的表达式,也有可能是一个通过分析得到的较复杂的表达式。
int S = 0;
for (int i = 1; i <= 100; i++)
{
S = S + i;
}
printf("%d\n",S);
注意:
1)对于已经确定是累加算法的题目,首先确定累加项与循环变量的关系;
2)然后,考虑第一个累加项的值是多少,以确定循环变量的初值;
3)其次,确定最后一个累加项的值,确定循环条件;
4)最后,考虑每个累加项之间的关系,以确定循环变量的变化(步长值)。
例:编程计算S = a + aa + aaa + aaaa + ... 的前n项之和。
例如:如果a = 3,n = 5,则表达式为:S = 3 + 33 + 333 + 3333 + 33333。
int S = 0;
int t = 0;
for (int i = 0;i < 5;i++ )
{
t = t * 10 + 3;
S = S + t;
}
printf("%d\n",S);
累加算法也可以演化为连乘的形式:S = 1 * 2 * 3 * ... * n。
连乘的算法和累加算法相似,循环体实现的是S = S * T的形式。需要注意的S的初值不是0,而是要设为1。
在求连乘时,由于每乘一次结果增长都非常快,所以应该注意是否会出现溢出的问题。
循环程序设计思路:
(1)输入是什么?用来确定原始值。
(2)输出是什么?确定应该输出的结果。
(3)从输入转换为输出需要怎样的步骤,是否需要重复(确定是否需要使用循环语句以及循环语句的内容)。
(4)如果需要重复,能否提前预知重复的次数?用来确定使用while、do while、for中的哪种循环语句。
(5)何时不再需要重复?用来确定循环条件以及循环体中使循环条件趋近于0的语句。
例:水仙花数、四叶玫瑰数、五角星数、六位数的问题。
水仙花数:每位数字的3次幂之和等于它本身。例:1^3 + 5^3 + 3^3 = 153。
四叶玫瑰数:每位数字的4次幂之和等于它本身。
五角星数:每位数字的5次幂之和等于它本身。
六位数:每位数字的6次幂之和等于它本身。
// 打印出所有的水仙花数
int i,j,k,n,s;
for(i = 1;i <= 9;i++)
for(j = 0;j <= 9;j++)
for(k = 0;k <= 9;k++)
{
n = k * k * k + j * j * j + i * i * i;
s = i * 100 + j * 10 + k;
if (n == s)
{
printf("%d\n",n);
}
}
或:
// 打印出所有水仙花数
int i,j,k,n,s;
printf("水仙花数有:\n");
for(n = 100;n < 1000;n++)
{
i = n / 100; /*分解出百位*/
j = n / 10 % 10; /*分解出十位*/
k = n % 10; /*分解出个位*/
s = i * i * i + j * j * j + k * k * k;
if(s == n)
{
printf("%d\n",n);
}
}
【C语言】-循环结构-for语句的更多相关文章
- Golang的循环结构-for语句
Golang的循环结构-for语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.for循环语法 循环结构在生活中的场景也非常的多,比如: ()上班族们每天朝九晚五的生活; ( ...
- 循环结构for语句-求和思想
循环结构for语句的练习-求和思想:需求1:求出1到10之间的数据和 public static void main(String[] args) { int sum = 0; for(int i = ...
- C语言-循环结构及break、continue
循环结构 --1-- 结构循环 1.1 while循环 1.2 do…while循环 1.3 for循环 --2-- break和continue 2.1 break关键字 2.2 continue关 ...
- C语言------循环结构II
仅供借鉴.仅供借鉴.仅供借鉴(整理了一下大一C语言每个章节的练习题.没得题目.只有程序了) 文章目录 1 .实训名称 2 .实训目的及要求 3 .源代码及运行截图 4 .小结 1 .实训名称 实训6: ...
- C语言------循环结构I
文章目录 1 .实训名称 2 .实训目的及要求 3 .源代码及运行截图 4 .小结 1 .实训名称 实训5:循环结构I 2 .实训目的及要求 1 .熟练掌握while.do-while和for语句实现 ...
- 【C语言】-循环结构-while语句
while语句: while循环可实现"当型"循环,即当条件成立时,执行循环体.适合无法确定循环执行次数的情况. while (表达式) { 循环语句 } 注意: 表达式为循环控制 ...
- C语言----循环结构1(基础篇五)
今天更新一个C语言的循环,简单点就是就是我们平时在使用电脑时不停的刷新网页,生活中每天都要吃饭等等就是循环,而编程中也有不断循环的过程,或者遇到符合的条件结束循环 下面进入今天的主题: 需求:用计算机 ...
- iOS学习03C语言循环结构
1.while循环 while (循环条件) { 循环体: } // 1.定义循环变量 ; // 2.循环条件 ) { // 3.循环体 printf("%d\n", ...
- iOS学习之C语言循环结构
一.while循环 while (循环条件) { 循环体: } // 1.定义循环变量 int time = 1; // 2.循环条件 while ( ...
随机推荐
- HDU4651+数学公式
见Goolgle http://zh.wikipedia.org/zh-cn/%E6%95%B4%E6%95%B8%E5%88%86%E6%8B%86 /* 数学公式 ans[i]:i可以有ans[i ...
- java中存在的内存泄漏
大家都知道JAVA有着自己的优点---垃圾回收器的机制,这个开发人员带来了很大的方便,不用我们编程人员去 控制内存回收等问题,有效的解决了内存泄露的问题,不至于导致系统因内存问题崩溃.为了精确的回收内 ...
- QT中16进制字符串转汉字
最经在研究AT指令接受短信,短信是unicode编码,接受后需要根据系统的编码方案进行相关的转码比如接受到了一串字符4F60597D,它是“你好”的unicode编码,一个unicode编码占两个字节 ...
- Android studio中不同颜色代表什么意思
和你的版本控制工具相关 绿色,已经加入控制暂未提交红色,未加入版本控制蓝色,加入,已提交,有改动白色,加入,已提交,无改动
- Move to Another Changelist
Move to Another Changelist 将选中的文件转移到其他的 Change list 中. Change list 是一个重要的概念,这里需要进行重点说明.很多时候,我们开发一个项目 ...
- python学习笔记五--文件
任何情况下文本文件在Python里均是字符串模式. 一.创建一个文件,并写入: 函数open(文件名,w) 二.打开一个文件,并读取: 函数open(文件名,r),“r”是默认值,可以不用写 三.使用 ...
- ObfuscationAttribute模糊处理
在Reflection的强大和Reflector的盛行下,.NET产品的内部实现越来越透明,在恶意用户和Cracker面前,基本上已是砧板上的肉,被切到什么程度只能祈祷遇到的都是钝刀子:于是一批批的混 ...
- Hibernate数据库持久层框架
Hibernate是一种Java语言下的对象关系映射解决方案. 它是使用GNU宽通用公共许可证发行的自由.开源的软件.它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架.Hib ...
- UNIX 网络编程第五章读书笔记
刚看完 UNIX 第五章内容,我想按照自己的方式将自己获得的知识梳理一遍,以便日后查看!先贴上一段简单的 TCP 服务器端代码: #include <sys/socket.h> #incl ...
- bzoj4511: [Usaco2016 Jan]Subsequences Summing to Sevens
前缀和. 设f[i]为前缀和%7=i的第一个点.那么答案就是max(i-f[s[i]%7])了. #include<cstdio> #include<algorithm> #i ...