跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

在c语言中用“ * ”号打印常见图形(三角形,菱形,正方形,长方形,圆形)

初学c语言,用*号打印各种图形是避不开的一道坎,因本人也是初学者,以下是相关的代码的练习,如有错误之处,还望广大网友指正。

1.打印三角形 1.1打印普通的三角 代码段如下,使用了两个for循环

1 #include

2 3 4 5 int main()//程序的入口; 6 { 7 int i = 0; 8 int j = 0; 9 //i和j为for循环中的变量,提前进行初始化; 10 for (i = 0 ; i < 5 ; i++)//三角形的行数; 11 { 12 for (j = 0 ; j <= i ; j++)//三角形每行*的个数; 13 { 14 printf("*");//每循环一次就打印一个*; 15 } 16 printf("\n");//每行打印完自动换行; 17 18 } 19 return 0;//退出程序 20 }

输出结果如下

*

** *** **** *****

1.2倒三角 将上方代码进行微微的改动

1 #include

2 #define N 5//定义一个三角形的行数; 3 4 5 int main()//程序的入口; 6 { 7 int i = 0; 8 int j = 0; 9 //i和j为for循环中的变量,提前进行初始化; 10 for (i = 0 ; i < N ; i++)//三角形的行数; 11 { 12 for (j = 0 ; j < N-i ; j++)//三角形每行*的个数; 13 { 14 printf("*");//每循环一次就打印一个*; 15 16 } 17 printf("\n");//每行打印完自动换行; 18 19 } 20 return 0;//退出程序 21 }

输出结果如下

*****

**** *** ** *

1.3等腰三角 等腰三角就是在*号前先打印倒三角的空格,代码如下:

1 #include

2 #define N 5//定义一个三角形的行数; 3 4 5 int main()//程序的入口; 6 { 7 int i = 0; 8 int j = 0; 9 //i和j为for循环中的变量,提前进行初始化; 10 for (i = 0 ; i < N ; i++)//三角形的行数; 11 { 12 for (j = 0 ; j < N-i ; j++) 13 { 14 printf(" ");//每循环一次就打印一个空格,打印个数为N-i; 15 } 16 for (j = 0 ; j < 2*i+1 ; j++) 17 { 18 printf("*");//每循环一次就打印一个*,打印个数为2*i+1; 19 } 20 printf("\n");//每行打印完自动换行; 21 } 22 return 0;//退出程序 23 }

打印结果如下

*

*** ***** ******* *********

1.4倒等腰三角

1 #include

2 #define N 5 //定义一个三角形的行数; 3 //打印倒正三角; 4 5 int main()//程序的入口; 6 { 7 int i = 0; 8 int j = 0; 9 //i和j为for循环中的变量,提前进行初始化; 10 for (i = 0 ; i < N ; i++)//三角形的行数; 11 { 12 for (j = 0 ; j < i ; j++)//每行空格的个数; 13 { 14 printf(" ");//每循环一次就打印一个空格; 15 } 16 for (j = 0 ; j < 2*N-2*i-1 ; j++)//每行*的个个数; 17 { 18 printf("*");//每循环一次就打印一个*; 19 } 20 printf("\n");//每行打印完自动换行; 21 } 22 return 0;//退出程序 23 }

运行结果如下

*********

******* ***** *** *

2.打印菱形 菱形的打印思路为一个正三角形的再加上倒三角形,具体代码如下

1 #include

2 #define N 5//定义一个三角形的行数; 3 //打印菱形; 4 5 int main()//程序的入口; 6 { 7 int i = 0; 8 int j = 0; 9 //i和j为for循环中的变量,提前进行初始化; 10 for (i = 0 ; i < N-1 ; i++)//三角形的行数; 11 { 12 for (j = 0 ; j < N-i-1 ; j++) 13 { 14 printf(" ");//每循环一次就打印一个空格,打印个数为N-i; 15 } 16 for (j = 0 ; j < 2*i+1 ; j++) 17 { 18 printf("*");//每循环一次就打印一个*,打印个数为2*i+1; 19 } 20 printf("\n");//每行打印完自动换行; 21 } 22 23 for (i = 0 ; i < N ; i++)//三角形的行数; 24 { 25 for (j = 0 ; j < i ; j++)//每行空格的个数; 26 { 27 printf(" ");//每循环一次就打印一个空格; 28 } 29 for (j = 0 ; j < 2*N-2*i-1 ; j++)//每行*的个个数; 30 { 31 printf("*");//每循环一次就打印一个*; 32 } 33 printf("\n");//每行打印完自动换行; 34 } 35 return 0;//退出程序 36 }

打印结果如下

*

*** ***** ******* ********* ******* ***** *** *

3.打印正方形 正方形比较好打印,行数等于列数即可

1 #include

2 #define N 5//定义正方形的边长; 3 4 5 int main()//程序的入口; 6 { 7 int i = 0; 8 int j = 0; 9 //i为for循环中的变量,提前进行初始化; 10 for (i = 0 ; i < N ; i++) 11 { 12 for (j = 0 ; j < N ; j++) 13 { 14 printf("*"); 15 } 16 printf("\n");//每行打印完自动换行; 17 } 18 return 0;//退出程序 19 } 20

打印结果如下

*****

***** ***** ***** *****

4.打印长方形

1 #include

2 #define N 5//定义长方形的长; 3 #define M 20//定义长方形的宽; 4 5 int main()//程序的入口; 6 { 7 int i = 0; 8 int j = 0; 9 //i为for循环中的变量,提前进行初始化; 10 for (i = 0 ; i < N ; i++) 11 { 12 for (j = 0 ; j < M ; j++) 13 { 14 printf("*"); 15 } 16 printf("\n");//每行打印完自动换行; 17 } 18 return 0;//退出程序 19 } 20

打印结果如下

********************

******************** ******************** ******************** ********************

相关文章