C语言复习3 (循环)
侧边栏壁纸
  • 累计撰写 20 篇文章
  • 累计收到 10 条评论

C语言复习3 (循环)

小顾
2024-01-30 / 0 评论 / 5 阅读 / 正在检测是否收录...

C语言循环基础
首先用的最多是for循环

for ( init; condition; increment )
{
   statement(s);
}

for 循环是一种在编程中经常使用的迭代结构,用于重复执行一组语句,直到指定的条件不再满足。for 循环的基本语法如下:

for (初始化表达式; 循环条件; 迭代表达式)
{
    循环体语句;
}

1.初始化表达式 (init):在循环开始之前执行一次。通常用于初始化循环控制变量。这一部分可以包含声明和赋值操作。

2.循环条件 (condition):在每次循环迭代之前检查的条件。如果条件为真(true),循环将继续执行;如果条件为假(false),循环将终止。

3.迭代表达式 (increment):在每次循环迭代之后执行。通常用于更新循环控制变量的值。

4.循环体语句 (statement(s)):在每次循环迭代时执行的一组语句。这是循环的主体,包含了实际的操作。

我会举个简单的例子,利用for循环计算1到5的和

#include <stdio.h>

int main() 
{
    int sum = 0;

    // 使用 for 循环计算 1 到 5 的和
    for (int i = 1; i <= 5; i++) {
        sum += i;// 循环体语句
    }

    // 输出结果
    printf("Sum: %d\n", sum);

    return 0;
}

1.首先就是初始化表达式 int i = 1; 在循环开始前初始化循环控制变量 i,i就是1。
2.循环条件 i <= 5 在每次循环迭代前检查 i 是否小于等于 5。
3.迭代表达式 i++ 在每次循环迭代后将 i 的值增加 1。
4.循环体语句 sum += i; 在每次循环迭代时将当前的 i 加到 sum 中。

sum += i就是 sum = sum + i
循环开始时,sum 的初始值为 0,然后在每次循环中,当前的 i 的值都会加到 sum 上,最终得到 1 到 5 的和。
第一次循环:sum = 0 + 1,sum 的值为 1。
第二次循环:sum = 1 + 2,sum 的值为 3。
第三次循环:sum = 3 + 3,sum 的值为 6。
第四次循环:sum = 6 + 4,sum 的值为 10。
第五次循环:sum = 10 + 5,sum 的值为 15。

i++(后缀递增):
先使用当前值,然后再递增。
返回 i 的原始值,然后将 i 增加 1。

int i = 5;
int result = i++;
// result = 5, i = 6

++i(前缀递增):

先递增,然后再使用新值。
返回 i 增加 1 后的值。

在C语言中,for 循环的循环体可以是一个单独的语句,也就是说,你可以在没有大括号的情况下编写 for 循环。如果 for 循环只有一条语句,大括号是可选的
在你的代码中,你的 for 循环只有一条语句,因此去掉大括号是合法的。以下是你的代码的修正版:

#include <stdio.h>

int main() 
{
   /* for 循环执行 */
   for (int a = 10; a < 20; a = a + 1) {
      printf("a 的值: %d\n", a);
   }

   return 0;
}

第一次直接输出10,第二次执行迭代表达式,a 的值: 11 换行继续输出,最后是19

屏幕截图 2024-02-20 233732.png

求1到100中所有偶数的和

#include <stdio.h>

int main() {
    // 初始化偶数和为0
    int even_sum = 0;

    // 使用for循环遍历0到100的偶数
    for (int num = 0; num <= 100; num += 2)  //num = num + 2
      {
        even_sum += num;    //even_sum = even_sum + num
    }

    // 打印结果
    printf("0到100的偶数和为: %d\n", even_sum);

    return 0;
}

屏幕截图 2024-02-20 234256.png

在上述的C程序中,初始时 even_sum 被初始化为0,而 num 被设置为0。在第一次循环迭代中,num 的值是0,因此 even_sum 将增加0,即 even_sum 的值仍然是0(even_sum = even_sum + num)。所以,第一次循环迭代后,even_sum 的值仍然是0。第二次循环结果是2.

在第二次循环迭代中,num 的值已经被自增为2。循环条件 num <= 100 仍然满足,因此循环继续执行。在第二次迭代中,even_sum += num; 将 even_sum 加上 num(此时 num 的值为2),并且 num += 2; 将 num 自增为4。所以,第二次循环迭代后,even_sum 的值是2,而 num 的值变为4。

这个过程会一直重复,每次迭代都会将 num 的当前值加到 even_sum 中,然后将 num 增加2。最终,当 num 的值超过100时,循环终止。在循环结束时,even_sum 包含了0到100之间所有偶数的总和。

第一步执行rush = 1;就是初始化表达式,第二步执行循环条件,看rush 是否小于1000 ,第三步执行循环体语句,rush = 1. 第四步执行自加语句rush ++,此时rush 是2。 第五步执行循环条件,rush <= GOLD;即rush <= 1000,第六步执行自增语句,rush变成了3,第七步执行循环体语句,输出 rush = 7;

以下是一个简单的C语言程序,用于生成斐波那契数列的前n个数字:

#include <stdio.h>

void generateFibonacci(int n) {
    int first = 0, second = 1, next, i;

    printf("斐波那契数列前 %d 个数字:\n", n);

    for (i = 0; i < n; i++) {
        printf("%d, ", first);
        next = first + second;
        first = second;
        second = next;
    }
}

int main() {
    int n;

    printf("请输入要生成的斐波那契数列的数字个数:");
    scanf("%d", &n);

    generateFibonacci(n);

    return 0;
}

for 循环可以嵌套使用
下面用C语言输出九九乘法表

#include <stdio.h>

int main()
{
    int row, column;
    for (row = 1; row <= 9; row++) {
        for (column = 1; column <= 9; column++) {
            printf("%d*%d = %2d\t", row, column, row * column);
        }
        printf("\n");
    }
    return 0;
}

外层循环 (for (row = 1; row <= 9; row++)): 控制行数,从1到9。

内层循环 (for (column = 1; column <= 9; column++)): 控制每行中的列数,同样从1到9

在内层循环中,printf语句输出了每一项的乘法表达式,其中%d*%d = %2d\t 是格式控制字符串,它表示输出两个整数相乘的结果,其中 %d 是用来格式化整数的占位符,%2d 表示至少输出两个字符的整数,\t 是制表符(用于在输出中产生水平制表)。

代码里printf("%d%d = %2d\t", row, column, row column); 语句用于输出九九乘法表中每一项的表达式。这样的格式化输出有助于让输出结果整齐对齐,提高可读性。例如,如果乘积是个位数,%2d 会在前面补一个空格,确保每一项的输出都占用两个字符的宽度。\t 是制表符(用于在输出中产生水平制表)。

调试:
屏幕截图 2024-02-20 234525.png

3

评论 (0)

取消