初学c语言,用*号打印各种图形是避不开的一道坎,因本人也是初学者,以下是相关的代码的练习,如有错误之处,还望广大网友指正。
1.打印三角形
1.1打印普通的三角
代码段如下,使用了两个for循环
1 #include<stdio.h>
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<stdio.h>
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<stdio.h>
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<stdio.h>
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<stdio.h>
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<stdio.h>
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<stdio.h>
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
打印结果如下
********************
********************
********************
********************
********************