//题目7:用*号输出空心菱形图案 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<math.h> //分析:菱形图案就是上下2个三角形 //abs() 绝对值函数(math.h>) 函数原型: int abs(int i); //扩展:fabs()绝对值函数 函数原型是double fabs(double x ); void main(){ //y轴 //int i =10; i > -11 自上y=10到y=-10 for (int i =10; i > -11; i--) { //x轴 //abs(i)是距y轴空白的大小(因为偶然等于i) for (int j = 0; j <abs(i); j++) { printf(" "); } //菱形内部的宽度2 * 10 - abs(i) for (int k = 0; k < (2 * 10 - abs(i)) + 1; k++) { //空心菱形两边打印*, if (k == 0 || k == (2 * (10 - abs(i)))) { printf("*"); } else{ printf(" "); } } printf(" "); } system("pause"); } //总结:绘制图形大部分需要使用多重循环
分析
//题目8:输出9*9口诀 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<math.h> //分析:9*9乘法表,肯定是双for循环,同样分为行和列 void main(){ for (int i = 1; i < 10; i++) { for (int j = 1; j < i+1; j++) { printf("%3d*%d=%d",i,j,i*j); } //一行换行 printf(" "); } system("pause"); }
//题目9:要求输出国际象棋棋盘。 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<math.h> //分析:国际象棋棋盘由64个黑白相间的格子组成,简单说就是交替输出1,0 //每行8个数,一共8行,双for循环 //判断偶数奇数,我决定num%2,余数只能是1或者0 void main(){ for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) { //判断奇数行还是偶数行 if (i%2) { //判断列的奇偶性 if (j%2) { printf(" * "); } else{ printf(" # "); } } else{ //行的奇偶性首列格子的图案 if (j % 2) { printf(" # "); } else{ printf(" * "); } } } printf(" "); } system("pause"); }