主页 > IT业界  > 

C语言——图形打印


题目1:

思路: 如果我们要打印一个实心正方形,其实就是一个二维数组,i控制行,j控制列,行列不需要控制,arr[i][j]直接打印星号即可。 对于空心正方形,我们只需要控制行和列的条件,当i== 0或i<n-1,j==0或j<n-1条件成立时,我们才打印星号,其他地方打印空格即可。

代码实现如下:

#include <stdio.h> int main() { int arr[20][20] = { 0 }; int n = 0; while (scanf("%d", &n) != EOF) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { //1.打印星号 if ((i == 0) || (i == n - 1) || (j == 0) || (j == n - 1)) { printf("* "); } //2.打印空格 else { printf(" "); } } printf("\n"); } } return 0; }

题目2:

思路: 通过观察我们发现,当i == j时,打印主对角线的星号,当i + j ==n-1时,打印次对角线的星号,其他地方打印空格即可。

代码实现如下:

#include <stdio.h> int main() { int arr[20][20] = { 0 }; int n = 0; while (scanf("%d", &n) != EOF) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { //1.打印星号 if ((i == j) || (i + j) == n-1) { printf("*"); } //2.打印空格 else { printf(" "); } } printf("\n"); } } return 0; }

题目3:

思路:我们分为上半部分和下半部分的打印:

#include <stdio.h> int main() { int line = 0; scanf("%d", &line); //打印上半部分 for (int i = 0; i < line; i++) { //1.打印空格 for (int j = 0; j < line - 1 - i; j++) { printf(" "); } //2.打印星号 for (int j = 0; j < 2 * i + 1; j++) { printf("*"); } printf("\n"); } //打印下半部分 for (int i = 0; i < line - 1; i++) { //1.打印空格 for (int j = 0; j < i + 1; j++) { printf(" "); } //2.打印星号 for (int j = 0; j < (line - 1 - i) * 2 - 1; j++) { printf("*"); } printf("\n"); } return 0; }
标签:

C语言——图形打印由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“C语言——图形打印