循环进阶——空心菱形的打印
采用for循环打印*,结合if输入空格
代码如下:
1 #include <stdio.h> 2 3 void main(){ 4 int a; //行数 5 int i; //项数变量 6 int j; //*的数目 7 int k; //空格 8 printf("请输入空心菱形的层数:"); 9 scanf("%d", &a); 10 if(a%2==0){ 11 printf("错误,不能为奇数!"); 12 }else{ 13 for(i = 1; i<=a/2+1; i++){ 14 for(k=1; k<=((a+1)/2-i); k++){ 15 printf(" "); 16 } 17 18 for(j=1; j<=(i*2-1); j++){ 19 if(j==1 | j==(i*2-1)){ 20 printf("*"); 21 j++; 22 } 23 printf(" "); 24 } 25 printf("\n"); 26 } 27 28 for(i = 1; i<=a/2; i++){ 29 for(k=1; k<=i; k++){ 30 printf(" "); 31 } 32 33 for(j=1; j<=(a-2*i); j++){ 34 if(j==1 | j==(a-2*i)){ 35 printf("*"); 36 j++; 37 } 38 printf(" "); 39 } 40 printf("\n"); 41 } 42 } 43 }
从此篇往后开始,稍微难的将会附上原代码。
运行结果如下: