用C语言打印一个菱形图案!
运行环境: win10 vs2013
在屏幕上输出以下图案:
拿到这种题目其实是比较容易的,简单的来说就是找规律!,这个菱形每一行是由多个空格和星号组成
第一行: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;
}