A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xqlyn123 中级黑马   /  2015-10-27 17:20  /  807 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在编程的过程中,你是否会遇到一些繁琐的操作?当你想要重复类似的操作很多次的时候,你是否会因为要不停的复制代码而头疼?现在我们使用一种新语法形式来解决这个问题——使用For循环

我们来做这样一个题:计算 1+2+3+……+100 的和。

这样一道题我们可以使用高斯的算法来解决,但是如果使用电脑来帮助我们计算,只要一步步算就可以了。但是,我们是不可能在代码里面写 1+2+3+……+100 的。所以我们要使用For循环。

格式:for(初始语句;执行条件;增量){循环体}

执行顺序:1、初始语句  2、执行条件是否符合?  3、循环体  4、增加增量

如上题,我们要求从1开始加到100,每次增加1,翻译成程序语言就是



int sum,i;

sum=0;

for(i=1;i<=100;i++)

{

    sum=sum+i;

}



当程序执行完后,变量sum的值就是所求的值。其中i是用来计数的,以后for循环多用i来计数(这是习惯)。

现在我们来分析一下for循环的工作原理。



i=1

判断 i<=100 成立

sum 加i

i++(就是 i+1 的意思。详见i++与++i的区别)

判断 i<=100 成立

sum 加i

i++(此时i=3)

…………

i++(此时i=100)

判断 i<=100 成立

sum 加i

i++(此时i=101)

判断 i<=100 不成立

退出,for循环做完




这样,大家都应该明白for循环是怎样工作了吧。

这里要提一下的是,for循环的循环体如果只有一条语句,for循环的大括号可以省略,即:

for(i=1;i<=n;i++)

    num=num*i;

好,再做一题:输入一个数n(n>1),输出n!的值。n!(n的阶层)=1*2*3*……*n

这题我就不分析了,原理一摸一样。如果不懂再留言吧。

参考源代码:




#include"stdio.h"

main()

{

    long num=1;

    int n,i;

    printf("请输入n:");

    scanf("%d",&n);

    for(i=1;i<=n;i++)

        num=num*i;

    printf("%d的阶层是%d\n",n,num);

}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马