编程C本 : 帖子 6 – 循环用C

1. 例如,开口

打印出你的名字那么简单不. 一个非常简单的程序编写.

#include <stdio.h>

int main()
{
    printf("Nguyen Van Quan\n");
    return 0;
}

行. 所以,现在我要你打印出来 10 次你的名字?

#include <stdio.h>

int main()
{
    printf("Nguyen Van Quan\n");
    printf("Nguyen Van Quan\n");
    printf("Nguyen Van Quan\n");
    printf("Nguyen Van Quan\n");
    printf("Nguyen Van Quan\n");
    printf("Nguyen Van Quan\n");
    printf("Nguyen Van Quan\n");
    printf("Nguyen Van Quan\n");
    printf("Nguyen Van Quan\n");
    printf("Nguyen Van Quan\n");
    return 0;
}

很简单, 刚才复制的 10 printf的行结束. 但是,如果不 10, 就是说 1000 以上? 显然复制并不可行.

其实, 该软件将工作要重复多次,在上面的例子. 或者像你的软件打印的员工列表, 每一位员工的信息 (内容) 不同,但结构非常相似. 或者干脆说你在浏览Facebook和看到的故事,从你的朋友, 这个消息是不是在内容相同,但结构很相似.

为了实现这个目标需要重复这样的任务, 我们将使用循环结构,其中包括 为, 而, 这样做,而. 这节课我们将学习有关环路 .

我们将修改示例 10 一旦你命名如下:

#include <stdio.h>

int main()
{
    int i;
    for (i = 1; i <= 10; i++)
    {
        printf("Nguyen Van Quan\n");
    }
    return 0;
}

如上面的代码, 我用 做的工作在他的名字 10 时间, 同 1000 简单的时候,我还更换了一些 10 一些 1000 (你可以试试). 看着你的代码也可以想像我们做的基本的东西.

2. 循环结构

环

句法, 流程图,以及环路的行为

看上面的图片我们可以看到环有语法以及它的工作原理是很清楚的,易于理解. 但是你要注意:

  • 对于没有分号的命令后.
  • 3 循环的表达用分号隔开 (;), 表达式可能缺席 1,2 或者两者 3 但这必须提高分号.
  • 表达式 1 总是在拨打的计算只有一次.
  • 表达式 2, 3 并为可能的亲戚反复.
  • 表达式 1, 2, 3 必须用分号分隔 ( ; ), 表达式可能缺席 1,2 或者两者 3 但这必须提高分号.
  • 如果表达 2 没有, 循环被认为是总是正确. 想逃离循环,以休息, 转到乙酸回报.
  • 对于每一个表达式可以写成一系列人类表情的由逗号分隔. 那么孩子判定表达式从左至右. 由于对与错,在第一序列表达的表达 2 由最终表达式确定.
  • 在体内 (块命令) 可含有一个或多个其它控制结构, 另一个循环.
  • 有一个break语句时,, 最深的循环结构将退出.
  • 在体内存在对thedung转到退出循环到所需位置.
  • 在体内可用于return返回一个特定功能.
  • 在体内可用于命令继续移动到循环的顶部 (跳过在体内的其余的语句).

返回的代码示例:

#include <stdio.h>

int main()
{
    int i;
    for (i = 1; i <= 10; i++)
    {
        printf("Nguyen Van Quan\n");
    }
    return 0;
}

其工作过程如下:

  • 步 1: 运行表达式 1 即分配I = 1.
  • 步 2: 运行表达式 2 即检查我 <= 10 不. 我是否= 1 应此右=>被印刷运行命令块名.
  • 步 3: 运行表达式 3 即我的增幅高达 1 单元. 现在我= 2.
  • 步 4: 返回表达 2. 检查我 < 10 不. 我是否= 2 应该还是正确=>运行命令块, 即在名.
  • 步 5: 运行表达式 3 即增加了我 1. 现在我= 3.
  • 步 6. 回到表达式2,…
  • 步….
  • 步骤x: 运行表达式 3, 我增加了 1. 现在我= 10.
  • 步骤x + 1: 返回表达 2 即检查我 <= 10. 保持为真=>运行命令块打印名.
  • 步骤x + 2: 运行表达式 3, 我增加了 1. 现在我= 11.
  • 步骤x + 3: 返回表达 2, 检查我 <= 10. 现在,它错了,因为我是 11 =>退出循环. 接着执行对等命令循环 (return语句 0 下方).

行. 现在你有循环的基本认识. 继续做几个例子.

例 1:

编写一个程序,打印出 15 次你的名字, 用下面的顺序一起:

  1. 阮文权
  2. 阮文权
  3. 阮文权
  4. ….

哼… 如何获得数量上升? 你可以看一下运行的for循环的步骤的过程? 我们有 1 我打开上升… 因此,我们将利用它.

#include <stdio.h>

int main()
{
    int i;
    for (i = 1; i <= 10; i++)
    {
        printf("%d.Nguyen Van Quan\n", i);
    }
    return 0;
}

例 2:

请甚至从打印出来的正数 1 到 20 顶 1 当前, 用空格分隔.

只是我从运行 1 到 20 我们将检查印刷数为偶数,. 要检查奇偶, 我们回顾了分工余额. 如果我把 2 残留 0 应均匀.

#include <stdio.h>

int main()
{
    int i;
    for (i = 1; i <= 20; i++)
    {
        if( i % 2 == 0) 
        {
            printf("%d ", i);
        }
    }
    return 0;
}

行. 但我想你低头代码提示之前想多一点. 我们怎么能不使用测试,如果连号码,还是做这个职位?

记住的为不固定的表达, 我们可以改变它. 而改变的方式增加我的. 我们给予我开始 2 和每次增加,上升 2 单元.

#include <stdio.h>

int main()
{
    int i;
    for (i = 2; i <= 20; i = i + 2)
    {
        printf("%d ", i);
    }
    return 0;
}

此代码显然比当时更好的代码. 上面我们增加了我 2 命令单元 I = I + 2.
这是一个任务,我 + 2 对于我, 比不上我和我的命令 + 2.

例 3:

总结甚至整 1 到 20.

#include <stdio.h>

int main()
{
    int i;
    int s = 0;
    for (i = 2; i <= 20; i = i + 2)
    {
        s = s + i;
    }

    printf("S = %d\n", s);

    return 0;
}

在上面的代码通知, 我们声明 1 变量s (站在总和) 节省总. 每次我增加,我们计入指挥 S =小号 + 在.

例 4:

从奇数的总和 1 到 20 但直到总数超过 15 然后停止.

在这里,我们总结了奇数, 如只对偶数, 然而,当总的大于 15 然后我们将停止, 再加上没有更多的.

#include <stdio.h>

int main()
{
    int i;
    int s = 0;
    for (i = 1; i <= 20; i = i + 2)
    {
        if(s <= 15)
        {
            s = s + i;
        }
    }

    printf("S = %d\n", s);

    return 0;
}

只需选中时仍然小于或等于少 15 然后我们增加. 我们将有S = 1 + 3 + 5 + 7 = 16.

但是,如果你发现, 当s> 15, 我们不加入到循环的,但仍在运行,直到我> 20. 这将运行到迭代i = 9, 11, 13, 15, 17, 19. 因此,造成浪费, 多余的,使程序运行的时间更长. 因此,我们应该在命令完成的时间打破循环当i = 7. 要做到这一点,可以使用 休息, 或 转到, 但你应该使用破推荐的简单性和安全性.

#include <stdio.h>

int main()
{
    int i;
    int s = 0;
    for (i = 1; i <= 20; i = i + 2)
    {
        if(s <= 15)
        {
            s = s + i;
        } else 
        {
            break;
        }
    }

    printf("S = %d\n", s);

    return 0;
}

例 5

输入整数n, 甚至数之和进入.

#include <stdio.h>

int main()
{
    int i, n, x;
    int s = 0;

    printf("Enter n = ");
    scanf("%d", &n);

    for (i = 1; i <= n; i++)
    {
        printf("Enter number %d : ", i);
        scanf("%d", &x);

        if(x % 2 != 0) continue;

        s = s + x;
    }

    printf("S = %d\n", s);

    return 0;
}

在本实施例, 我教你如何使用命令 继续. 该命令不逃避资本效果回路,但久违的表达 3 没有它背后的订单. 在这里,如果x甚至没有进入命令跳过它运行,以增加我的权利增量指令S.

锻炼:

  1. 编写一个程序,打印出的数量n和数n估计,.
  2. 写测试程序 1 有素数不? 质数仅仅是一个正整数 2 公约 1 和本身. 实例号 2, 3, 5, …
  3. 写测试程序 1 有完美的数量不? 完全数是正整数等于所估计的总和 2 有时它. 示例 6 公约 1, 2, 3, 6 总 1 + 2 + 3 + 6 = 12 (平等 2 时间 6).
  4. 写一个程序来计算S = 1 + 1/2 + 1/3 + … + 1/ñ
  5. 编写计算从奇数的平方的程序 1 到n.
  6. 编写一个程序,计算出n! 知道N.! = 1.2.3.4…ñ
  7. 写计数第n个斐波那契序列已知序列F A计划(ñ) = F(N-1) + ˚F(N-2), N> 2 和f(1) = 1, ˚F(2) = 1.
  8. 写长的程序, 该矩形的宽度. 绘制一个矩形,星号 (*) 大小进入.