【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 ( ...
随机推荐
- 【BZOJ 3343 】 分块
3343: 教主的魔法 Description 教主最近学会了一种神奇的魔法,能够使人长高.于是他准备演示给XMYZ信息组每个英雄看.于是N个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1. ...
- 孟岩的c++ 的学习方法,这何尝有不是做人做事的方法呢?
“(孟岩)我主张,在具备基础之后,学习任何新东西,都要抓住主线,突出重点.对 于关键理论的学习,要集中精力,速战速决.而旁枝末节和非本质性的知识内容,完全可 以留给实践去零敲碎打. “原因是这样的,任 ...
- jquery.cookie.js使用介绍
Cookies概述: Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术.Cookies是当你浏览某网站时,由Web服务器置于你硬盘上的一个非 ...
- java 串口通信 代码
下面是我自己实现的串口接收的类,串口发送比较简单,就直接发送就可以了.下面的这个类可以直接使用. package com.boomdts.weather_monitor.util; import ja ...
- Microsoft.Data.ConnectionUI.DataConnectionDialog
MicrosoftVisualStudio里面的资源之数据库连接配置 这个功能的实现主要是用了Microsoft.Data.ConnectionUI.dll和Microsoft.Data.Connec ...
- Web开发之tomcat配置及使用(环境变量设置及测试,一个简单的web应用实例)
Tomcat的配置及测试: 第一步:下载tomcat,然后解压到任意盘符 第二步:配置系统环境变量 tomcat解压到的D盘 (路径为: D:\tomcat), 配置环境变量: 启动tomcat需要两 ...
- Python中的函数对象与闭包
函数在Python中是第一类对象,可以当做参数传递给其他函数,放在数据结构中,以及作为函数的返回结果. 下面的例子为接受另外一个函数作为输入并调用它 #foo.py def callf(func): ...
- C++静态成员变量和静态成员函数小结
静态类成员包括静态数据成员和静态函数成员两部分. 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员.和其他数据成员一样,静态数据成员也遵守pub ...
- IE9 表格错位bug
最近做项目的时候,出现一个只在原生IE9(非模拟)下的bug. bug图片如下: 以上两个模块的html代码和样式都是一样的,然而下面的显示却出现了各种对齐的bug. 用IE9的调试器查看,代码完全一 ...
- linux 入门教程
linux入门教程 搜索 Linux入门教程 前言 第一章 关于Linux的历史 第二章 图形界面还是命令窗口 第三章 Linux操作系统的安装 第四章 初步进入linux世界 第五章 Linux系统 ...