1.打印空心菱形
#include<stdio.h>
int main()
{int n,i,m,j,k;scanf("%d", &n);m = (n + 1) / 2;for (i = 1; i <= n; i++) //一行一行的循环打印{if (i <= m) //分两种情况,上半部分和下半部分{for (j = m - i; j > 0; j--)printf(" ");for (k = i; k > 0; k--)printf("* ");}else{for (j = i-m; j > 0; j--)printf(" ");for (k = 2*m-i; k > 0; k--)printf("* ");}printf("\n"); //注意换行}
}
附上效果图:
2.打印实心菱形
#include<stdio.h>
int main()
{int n,i,m,j,k;scanf("%d", &n);m = (n + 1) / 2;for (i = 1; i <= n; i++){if (i <= m){for (j = m - i; j > 0; j--)printf(" ");for (k = i*2-1; k > 0; k--)printf("*");}else{for (j = i-m; j > 0; j--)printf(" ");for (k = (n-i)*2+1; k > 0; k--)printf("*");}printf("\n");}
}
效果图