在 C 语言学习过程中,for 循环与条件判断的结合应用非常重要。今天通过一个打印空心矩形的例子,帮助大家理解嵌套循环与if语句的组合技巧。
用 C 语言在控制台打印一个5行5列的空心矩形:
*****
* *
* *
* *
*****
#include
int main() {
int row, column;
int row_length = 5; // 行数
int column_length = 5; // 列数
for (row = 1; row <= row_length; row++) { // 外层循环控制行
for (column = 1; column <= column_length; column++) { // 内层循环控制列
if(row == 1 || row == row_length) { // 如果是第一行或最后一行
printf("*");
} else if(column == 1 || column == column_length) { // 如果是每行的第一列或最后一列
printf("*");
} else { // 其余情况输出空格
printf(" ");
}
}
printf("\n"); // 每行结束换行
}
return 0;
}
程序执行后,控制台输出:
*****
* *
* *
* *
*****
1
到 5
。1
到 5
。*
。*
。row_length
次。column_length
次。因此,总的基本操作次数为:
row_length×column_length=5×5=25 row\_length \times column\_length = 5 \times 5 = 25 row_length×column_length=5×5=25
O(row_length×column_length)=O(n2) O(row\_length \times column\_length) = O(n^2) O(row_length×column_length)=O(n2)
若行列相同(n 行 n 列),简化为:
O(n2) O(n^2) O(n2)
row
、column
、row_length
、column_length
。O(1) O(1) O(1)
项目 | 内容 |
---|---|
输出效果 | 5行5列空心矩形 |
时间复杂度 | O(n²) |
空间复杂度 | O(1) |
技术要点 | 嵌套循环 + 条件判断 |