1 #define _CRT_SECURE_NO_WARNINGS 1
因为笔者采用的是VS的编译环境所以有了上面的这一句话
我们都知道平面图形是由一条条线段构成,所以我们就先实现线段的打印
1 //打印自定义长度的线段 2 #include<stdio.h> 3 int main() 4 { 5 int i = 0; 6 int n; 7 while (~scanf("%d",&n)) 8 { 9 for (i = 0; i < n; i++)10 printf("* ");11 printf("\n");12 }13 return 0;
那么,线段学会了,我们就可以进行简单图形的打印了
首先我们从正方形开始:
1 //打印自定义边长的正方形 2 #include<stdio.h> 3 int main() 4 { 5 int j = 0,i = 0; 6 int n; 7 while (~scanf("%d",&n)) 8 { 9 for (i = 0; i < n; i++)//控制行10 {11 for (j = 0; j < n; j++)//控制列12 printf("* ");13 printf("\n");14 }15 }16 return 0;17 }
接下来是三角形:(笔者准备了六种三角形)
1 //打印三角形—1 2 #include<stdio.h> 3 int main() 4 { 5 int j = 0,i = 0,n; 6 while (~scanf("%d",&n)) 7 { 8 for (j = 0; j < n; j++)//行 9 { 10 for (i = 0; i < n - j; i++)//列 11 { 12 printf("* "); 13 } 14 printf("\n"); 15 } 16 } 17 return 0; 18 } 19 20 //打印三角形—2 21 #include<stdio.h> 22 int main() 23 { 24 int j = 0,n; 25 while (~scanf("%d",&n)) 26 { 27 for (j = 0; j < n; j++)//行 28 { 29 for (i = 0; i <= j; i++)//列 30 { 31 printf("* "); 32 } 33 printf("\n"); 34 } 35 } 36 return 0; 37 } 38 39 //打印三角形—3 40 #include<stdio.h> 41 int main() 42 { 43 int j = 0,n; 44 while (~scanf("%d",&n)) 45 { 46 for (j = 0; j < n; j++)//行 47 { 48 for (i = 0; i < n - j - 1; i++)//列 49 { 50 printf(" "); 51 } 52 for (i = 0; i <= j; i++) 53 { 54 printf("* "); 55 } 56 printf("\n"); 57 } 58 } 59 return 0; 60 } 61 62 //打印三角形—4 63 #include<stdio.h> 64 int main() 65 { 66 int j = 0,n; 67 while (~scanf("%d",&n)) 68 { 69 for (j = 0; j < n; j++)//行 70 { 71 for (i = 0; i < j ; i++)//列 72 { 73 printf(" "); 74 } 75 for (i = 0; i < n - j ; i++) 76 { 77 printf("* "); 78 } 79 printf("\n"); 80 } 81 } 82 return 0; 83 } 84 85 //打印三角形—5 86 #include<stdio.h> 87 int main() 88 { 89 int j = 0,n; 90 while (~scanf("%d",&n)) 91 { 92 for (j = 0; j < n; j++)//行 93 { 94 for (i = 0; i <= n - j ; i++)//列 95 { 96 printf(" "); 97 } 98 for (i = 0; i <= j; i++) 99 {100 printf("* ");101 }102 printf("\n");103 }104 }105 return 0;106 }107 108 //打印三角形—6109 #include<stdio.h>110 int main()111 {112 int j = 0,n;113 while (~scanf("%d",&n))114 {115 for (j = 0; j < n; j++)//行116 {117 for (i = 0; i < j; i++)//列118 {119 printf(" ");120 }121 for (i = 0; i < n - j; i++)122 {123 printf("* ");124 }125 printf("\n");126 }127 }128 return 0;129 }
现在就可以尝试一下图形的挖空了
我们仍然保持之前的顺序从正方形到三角形:
//空心正方形#include<stdio.h>int main(){ int j = 0,i=0; int n; while (~scanf("%d",&n)) { for (j = 0; j < n; j++) { for (i = 0; i < n; i++) { if (j == 0 || i==0 ||j==n-1 || i==n-1) printf("* "); else printf(" "); } printf("\n"); } }}
1 //空心三角形 2 #include<stdio.h> 3 int main() 4 { 5 int n; 6 int i = 0,j = 0; 7 while (~scanf("%d",&n)) 8 { 9 for (i = 0; i < n; i++)10 {11 for (j = 0; j <= i; j++)12 {13 if (j == 0 || i == j || i==n-1 )14 printf("* ");15 else16 printf(" ");17 }18 19 printf("\n");20 }21 }22 }
那么我们可以从以上知识尝试一下自己打出一个菱形以及空心菱形
1 #define _CRT_SECURE_NO_WARNINGS 1 2 #include<stdio.h> 3 #include<math.h> 4 int main() 5 { 6 int i = 0,j = 0; 7 int n; 8 while (~scanf("%d",&n))//在这的n我们必须保证是奇数 9 {10 for (i = 0; i < n; i++)11 {12 for (j = 0; j < abs(n / 2 - i); j++)13 printf(" ");14 for (j = 0; j < n - 2 * abs(n / 2 - i); j++)15 printf("*");16 printf("\n");17 }18 }19 return 0;
为了更好的理解,笔者微微修改了以上代码
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<math.h>#include<windows.h>int main(){ int i = 0,j = 0; int n; while (~scanf("%d",&n)) { for (i = 0; i < n; i++) printf("%2d",i); printf("\n"); for (i = 0; i < n; i++) { for (j = 0; j < abs(n / 2 - i); j++) { printf(" "); Sleep(100); } for (j = 0; j < n - 2 * abs(n / 2 - i); j++) { printf("* "); Sleep(100); } printf("\n"); Sleep(100); } } return 0;}
此外在提供一个打印菱形的代码
#include<stdio.h>
int main()
{
int i,j,n;
{
while (~scanf("%d",&n))
{//上边部分
for (i = 0; i < n; i++)
{
for (j = i; j < n - 1; j++)
printf(" ");
for (j = 0; j < 2 * i + 1; j++)
printf("*");
printf("\n");
}
for (i = n - 2; i >= 0; i--) //这里i从n-2开始的,要是从n-1开始会出现两行相同的情况
{
for (j = i; j < n - 1; j++)
printf(" ");
for (j = 0; j < 2 * i + 1; j++)
printf("*");
printf("\n");
}//下边部分
}
return 0;
}
}
当然,肯定要在这给几个笔者参考过的文章
参考 https://blog.csdn.net/marwi_study/article/details/88749427?utm_source=app
在这笔者再提供一个由字符组成的三角形
#include<stdio.h>int main(){ int i,n,k = 0; char ch = 'A'; printf("请输入行数:"); scanf("%d",&n); for (i = 0; i < n; i++) { for (j = 0; j < 2*(n-i)-1; j++) { k++; if (k % 2 != 0) { printf("%c",ch++); } else printf("%c",ch); } printf("\n"); } return 0;}
最后可以大家可以尝试一下自己打印空心菱形以及由字符构成的图形
总结
以上是内存溢出为你收集整理的c语言实现一些简单图形的打印全部内容,希望文章能够帮你解决c语言实现一些简单图形的打印所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)