c语言的循环之for循环

来源:互联网 发布:mmd数据 编辑:程序博客网 时间:2024/05/16 07:30


D ennisRitchie 过世了,他发明的c语言,一个影响深远并彻底改变世界的计算机语言。C语言的诞生是偶然的,它仅仅只是UNIX系统的附加产物。但是也丝毫掩盖不了它王者的地位,看看2014年的语言排行榜:历经40多年的洗礼,多少语言随大浪东去,辉煌一阵又迅速湮 灭,唯有C语言,傲视群雄!

今天很多语言都受到了c语言的影响,c++,java,c#,Perl,php,objective-c,等等。

首先我们先来看下面这个代码

#include<stdio.h>

int main () {

printf (“周老师怎么长的这么帅呀?\n”,a);

return 0;

}

【理解】第一个C语言代码分析

学过开发方面的一眼就能看出这个代码能打印一句周老师怎么长的这么帅呀?

1、
#include<stdio.h> 代表引入一个系统头文件,这个头文件名字叫stdio.h

这个头文件里包含一些输入/输出的信息 2、

int main(){ }

这是一个主函数,作用是:告诉系统你的程序代码的执行顺序。程序里面有且只能有一个 main函数

下面我们来说一下c语言里的for循环

 

题目:让用户输入一个数N,输出类似如下图的等腰三角形(如下图)

        *

       ***

     *****

    *******

   *********

#include <stdio.h>

int main(int argc, const char *argv[]) {   

   printf("请输入一个整数\n");

    int num;

    scanf("%d",&num);

     for (int i = 1; i <= num; i++) { 

        for (int j = 0; j < num - i ; j++) {

            printf(" ");

        }

        for (int j = 0; j < i*2-1; j++) {

            printf("*"); 

        }

        printf("\n");

    }

    return 0;

}

运行一下就能打印出上面的图形,是不是很好玩?

其中用到了一个最关键的语法,就是for循环。C语言中for循环语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定的情况而只给出循环结束条件的情况,它完全可以替代while语句。

一般形式:

for(表达式1;表达式2;表达式3) {

循环体; }

2、for循环执行过程

第1步: 先执行表达式1。


第2步: 执行表达式2,若其结果值为真(值为非0),则跳转到第3步。若为假(值为0),转到第5步。

第3步: 执行循环体,再跳转到第4步


第4步:执行表达式3。


第5步:跳出循环,循环结束

如:for(inti=1;i<=100;i++) sum=sum+i;

i = 1;

while (i<=100){

sum = sum+i;

i++;

}

显然,用for语句更简单,方便。

基本格式:

        for(表达式1;表达式2;表达式3){

 

            循环体;

        }

 

    例:

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

 

        }

 

 

 其他格式:

        表达式1,表达式2,表达式3都可以省略

 

    注意:表达式2没写的话代表是死循环

 

   就算你不写表达式1,表达式2,或者表达式3,但是那两个分号无论如何都不省略

习题:求100到999之间的水仙花数

 从100循环到999

 

 首先是三位数

 

 

 水仙花数:abc =a*a*a  +  b*b*b  +   c*c*c

 

 如:153=  1*1*1 + 5*5*5  +3*3*3

            1        125     27

 

 数字的立方:数字*数字*数字

 

 水仙花数;百位数字的立方 + 十位数字的立方 + 个位数字的立方  = 这个数字本身

 

 

 分析:

    1.首先要从100遍历到999

    2.要判断这个数字是不是水仙花数

 

        2.1 首先取得百位数字

            然后取得十位数字

            最后取得个数数字

 

        2.2 用 百*百*百 + 十*十*十 + 个*个*个 得到一个和,然后用这个和判断是否和当前遍历到得三位数相等

 

            153 % 10 = 3

            个位 = 这个数字 % 10;

 

            153 / 10 = 15   15 % 10 = 5

            十位 = 这个数字 / 10  % 10

 

            153 / 100 = 1   999 /100 = 9

            百位 = 这个数字 / 100;

 

 

        2.3 相等就证明是水仙花数

 

3.如果是就输出

//   1.首先要从100遍历到999

    for (int i=100; i<=999; i++) {

       

//        2.要判断这个数字是不是水仙花数

//       

//        2.1 首先取得百位数字

//        然后取得十位数字

//        最后取得个数数字    

        int bai = i / 100;

        int shi = i / 10 % 10;

        int ge = i % 10;

//        2.3 相等就证明是水仙花数

        if( bai*bai*bai + shi*shi*shi +ge*ge*ge == i){   

//                3.如果是就输出

           

            printf("%d  ",i);

        } 

        //371     3*3*3 + 7*7*7 + 1*1*1

//                    27     343   1

    }   

    return 0;

}

for循环的嵌套:

        就是一个for循环里面还套了一个for循环

 

 

 for循环的嵌套一般用来控制平面,利用c语言中的for循环嵌套可以打印各种各样的平面形状

 

 不管图形如何复杂

精华:

    外层循环控制行数

 

    内层循环控制列数

 

 

0 0
原创粉丝点击