运行环境:win10 vs
在屏幕上输出以下图案:
拿到这种题目其实是比较容易的,简单的来说就是找规律!,这个菱形每一行是由多个空格和星号组成
第一行:6个空格,1个星号
第二行:5个空格,3个星号
第三行:4个空格,5个星号
以此类推,假设菱形的一半有N行,此时N为7,,那么第i行时:有n-i个空格,2*i-1个星号
那么下半部分如何打印呢?其实我们可以把这个菱形分成3个部分
代码部分如下:
为了避免多次循环,采用多个函数来实现,为了统一规范,函数定义开头大写,而对于变量名我们用下划线命名,也方便我们后期读取前期写的代码很容易区分函数和变量名
运行结果
#include<stdio.h>#include<stdlib.h>void PrintLine(int blank_count, int start_count){int i = 0;for (; i < blank_count; i++){printf(" "); //打印空格}for (i = 0; i < start_count; i++){printf("*");}printf("\n");}void PrintLingxing(int n){//打印上半部分int i = 1;for (i = 1; i < n; i++){PrintLine(n - i, 2 * i - 1); // 打印每一行的空格和每一行的星号}//打印中间部分PrintLine(0, 2 * n - 1);//打印下半部分for (i = n - 1; i>0; i--){PrintLine(n - i, 2 * i - 1);}}int main(){PrintLingxing(7); //对半的行数system("pause");return 0;}