柏虎资源网

专注编程学习,Python、Java、C++ 教程、案例及资源

C语言入门:二重循环_c语言两重for循环执行顺序

什么是二重循环?

循环体内可以是任何语句,任何语句,当然就可以是另一个循环语句。

二重循环,就是循环里面再套一个循环

就像我们日常生活中,一周有7天(外层循环),每天有24小时(内层循环),这样组合起来就是7×24的时间安排。

在C语言中,我们最常用的就是for循环和while循环的嵌套。

基本语法结构

for (外层初始化; 外层条件; 外层更新)

{

// 外层循环体

for (内层初始化; 内层条件; 内层更新)

{

// 内层循环体

}

}

例1:打印九九乘法表

让我们通过最经典的例子来理解二重循环:

#include <stdio.h>

int main()

{

int i, j;

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

{ // 外层循环:控制行数

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

{ // 内层循环:控制每行的列数

printf("%d×%d=%-2d ", j, i, i * j);

}

printf("\n"); // 换行

}

return 0;

}

运行结果:

text

1×1=1

1×2=2 2×2=4

1×3=3 2×3=6 3×3=9

...(以此类推)

例2:打印图形图案

二重循环非常适合用来打印各种图形:

#include <stdio.h>

int main() {

int rows = 5;

// 打印直角三角形

printf("直角三角形:\n");

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

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

printf("* ");

}

printf("\n");

}

// 打印倒三角形

printf("\n倒三角形:\n");

for (int i = rows; i >= 1; i--) {

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

printf("* ");

}

printf("\n");

}

return 0;

}

例3:处理二维数组

二重循环是处理二维数组的绝佳工具:

#include <stdio.h>

int main() {

int matrix[3][4] = {

{1, 2, 3, 4},

{5, 6, 7, 8},

{9, 10, 11, 12}

};

printf("二维数组内容:\n");

for (int i = 0; i < 3; i++) { // 遍历行

for (int j = 0; j < 4; j++) { // 遍历列

printf("%d\t", matrix[i][j]);

}

printf("\n");

}

// 计算总和

int sum = 0;

for (int i = 0; i < 3; i++) {

for (int j = 0; j < 4; j++) {

sum += matrix[i][j];

}

}

printf("数组元素总和: %d\n", sum);

return 0;

}

例4:冒泡排序算法

二重循环在排序算法中非常重要:

#include <stdio.h>

int main() {

int numbers[] = {5, 2, 8, 1, 9};

int n = 5;

printf("排序前: ");

for (int i = 0; i < n; i++) {

printf("%d ", numbers[i]);

}

// 冒泡排序 - 使用二重循环

for (int i = 0; i < n - 1; i++) { // 外层循环:控制轮数

for (int j = 0; j < n - 1 - i; j++) { // 内层循环:比较相邻元素

if (numbers[j] > numbers[j + 1]) {

// 交换位置

int temp = numbers[j];

numbers[j] = numbers[j + 1];

numbers[j + 1] = temp;

}

}

}

printf("\n排序后: ");

for (int i = 0; i < n; i++) {

printf("%d ", numbers[i]);

}

return 0;

}

重要注意事项

  1. 变量命名:外层循环通常用i,内层用j、k等,避免混淆
  2. 循环条件:确保内层循环的条件正确,避免死循环
  3. 性能考虑:二重循环的时间复杂度是O(n^2),数据量大时可能较慢
  4. 缩进格式:保持良好的代码缩进,让嵌套关系清晰可见

练习建议

  1. 尝试打印不同的图形(菱形、正方形等)
  2. 用二重循环实现矩阵的加法和乘法
  3. 尝试其他排序算法(如选择排序)
  4. 解决一些逻辑题,如找出100以内的所有质数

总结

二重循环是C编程中的重要概念,它让我们能够处理更复杂的数据结构和算法。

外层循环控制"大节奏",内层循环处理"细节"。

多练习、多思考,你很快就能熟练掌握这个强大的工具!

上述这些程序大伙先自己体会体会,下次细说。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言