• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C语言for语句用法详解

C语言for语句用法详解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c语言for循环详解,c语言for循环语句,c语言for语句,c语言for语句的用法,c语言中for循环语句等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

首先,这里所提到的类C语言指的是如C、C++、C#和Java等语法和C语言一样或类似的程序设计语言。这些语言中,for语句的语法和执行流程都是一样的。本文将就这一语句的用法进行一个较为深入的讨论。

for语句:

{
  循环语句
}</div>

表达式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);
</div>

注意:
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);
</div>

累加算法也可以演化为连乘的形式: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);
      }
    }
</div>

最后我用例子来总结一下吧! 下面的例子是一个对1-10这10个数求和的例子。

int i, sum = 0, num = 10;       // 声明几个变量:i 计数, sum 存储最后的总和, num 表示多少个数,用来控制边界。
for(i = 1; i <= num; i++)   // for语句包含三个语句,用;隔开。
{                                     //1设置初始值,2边界控制,3通常用来调整计数值。
    sum += i;          // 相当于 sum = sum + i; 表示不断地加i。 {}内的语句均为循环体,用4表示。
}  // for循环的执行顺序为 1-2-4-3-2-4-3-2-4-3-2................直到i > num.这时,将退出循环。
printf("The sum from 1 to 10 is ", sum);     // 打印输出sum值。
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C语言 经典题目螺旋矩阵 实例详解
  • C语言for语句用法详解
  • C语言格式化输入输出函数详解

相关文章

  • 2017-05-28c++ 快速排序算法【过程图解】
  • 2017-05-28基于C语言sprintf函数的深入理解
  • 2017-05-28算法详解之分治法具体实现
  • 2017-05-28字符串的组合算法问题的C语言实现攻略
  • 2017-05-28C++ 将文件数据一次性加载进内存实例代码
  • 2017-05-28用C++面向对象的方式动态加载so的方法
  • 2017-05-28C语言 makefile学习及实现实例
  • 2017-05-28json格式解析和libjson的用法介绍(关于cjson的使用方法)
  • 2017-05-28C++用Dijkstra(迪杰斯特拉)算法求最短路径
  • 2017-05-28C++ 中指针和引用有什么区别详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C++获取本机登陆过的QQ号码示例程序
    • 字符串拷贝函数memcpy和strncpy以及snprintf 的性能比较
    • C++中 静态局部变量实例详解
    • C语言 数组指针详解及示例代码
    • 内核线程优先级设置的方法介绍
    • MFC自定义消息的实现方法
    • c++ cin 作为while条件(详解)
    • 通过C++程序示例理解设计模式中的外观模式
    • 12个关于C语言的有趣问答
    • 详解C语言gets()函数与它的替代者fgets()函数

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有