活动地址:毕业季·进击的技术er
夏日炎炎,热浪中我们迎来毕业季,这是告别,也是迈向新起点的开始。这是一个毕业的月份,每年看到很多毕业生都离校上班,在校生准备考试和暑假实习,都非常感慨,不管怎样,作为在校生,玩好的同时,还是要能够扎实的学习,打好坚实基础,从初学C语言开始,为后续的实习找工作做准备。
文章目录
前言1、打印空心正方形1.1 图形1——无空格版1.2 图形2——有空格版1.3 图形3——旋转45度,没有空格版1.4 图形4——旋转45度,有空格版 总结前言
前面已经在【C语言练习——打印正方形及其变形】、【C语言练习——打印空心下三角及其变形】、【C语言练习——打印空心上三角及其变形】 练过打印空心上三角及其变形、打印空心三角形及其变形、打印正方形及其变形。
本文在此基础上,练习打印空心正方形及其变形
1、打印空心正方形
1.1 图形1——无空格版
//打印空心正方形 无空格int main(){int n = 0;while (scanf("%d", &n) != EOF){for (int i = 0; i < n; i++)//行数{for (int j = 0; j < n; j++)//列数{//满足条件输出 * ,即在边界上就是 *if (i == 0 || j == 0 || i == n - 1 || j == n - 1)printf("*");elseprintf(" ");//不在边界上的点都是空格}printf("\n");}}return 0;}
结果见下图:
1.2 图形2——有空格版
//打印空心正方形 空格版int main(){int n = 0;while (scanf("%d", &n) != EOF){for (int i = 0; i < n; i++)//行数{for (int j = 0; j < n; j++)//列数{//满足条件输出 * ,即在边界上就是 *if (i == 0 || j == 0 || i == n - 1 || j == n - 1)printf("* ");elseprintf(" ");//不在边界上的点都是空格}printf("\n");}}return 0;}
结果见下图:
1.3 图形3——旋转45度,没有空格版
//打印正方形,旋转45度,没有空格版int main(){int n = 0;while (scanf("%d", &n) != EOF){//打印上半部分 nfor (int i = 0; i < n; i++){//打印一行//打印空格int j = 0;for (j = 0; j < n - 1 - i; j++){printf(" ");}//打印*for (j = 0; j < 2 * i + 1; j++){//满足条件输出 * ,即在边界上就是 *if (j == 0 || j == 2 * i )printf("*");elseprintf(" ");//不在边界上的点都是空格}printf("\n");}//打印下半部分 n-1for (int i = 0; i < n - 1; i++){//打印一行//打印空格int j = 0;for (j = 0; j <= i; j++){printf(" ");}//打印*for (j = 0; j < (n - 1 - i) * 2 - 1; j++){//满足条件输出 * ,即在边界上就是 *if (j == 0 || j == (n - 1 - i) * 2 - 2)printf("*");elseprintf(" ");//不在边界上的点都是空格}printf("\n");}}return 0;}
结果见下图:
1.4 图形4——旋转45度,有空格版
//打印正方形,旋转45度,有空格版int main(){int n = 0;while (scanf("%d", &n) != EOF){//打印上半部分 nfor (int i = 0; i < n; i++){//打印一行//打印空格int j = 0;for (j = 0; j < n - 1 - i; j++){printf(" ");}//打印*for (j = 0; j <= i; j++){//满足条件输出 * ,即在边界上就是 *if (j == 0 || i == j)printf("* ");elseprintf(" ");//不在边界上的点都是空格}printf("\n");}//打印下半部分 n-1for (int i = 0; i < n - 1; i++){//打印一行//打印空格int j = 0;for (j = 0; j <= i; j++){printf(" ");}//打印*for (j = 0; j < (n - 1 - i); j++){//满足条件输出 * ,即在边界上就是 *if (j == 0 || j == n - i - 2)printf("* ");elseprintf(" ");//不在边界上的点都是空格}printf("\n");}}return 0;}}
结果见下图:
总结
本文练习打印空心正方形及其变形,主要练习了:
外循环、内循环的应用注意行数、空格数、符号*数之间的数学表达式
活动地址:毕业季·进击的技术er