题目描述
菱形是一种特殊的平行四边形,是四条边均相等的平行四边形。题目给出菱形的边长n,用*画出菱形。
解题思路
之前类似的题目我总是分为上下两部分分别打印,这次直接用一个外层循环就OK啦!
代码实现
#include <stdio.h>
int main()
{
int n; scanf("%d", &n);
for (int i=0; i<2*n-1; i++){
int k;
if (i < n)
k = n - i - 1;
else
k = i - n + 1;
// print blanks
for (int j=0; j<k; j++)
printf(" ");
// print characters
for (int j=0; j<2*n-1-2*k; j++)
// pay attention to the condition of end this loop
printf("*");
printf("\n");
}
return 0;
}
也可以这样写。
#include <stdio.h>
int main(){
int n, i, j;
scanf("%d", &n);
for (i=0; i<2*n-1; i++){
for (j=0; j<abs(n-i-1); j++){ //打印空格
putchar(' ');
}
for (j=0; i<n&&j<2*i+1; j++){ //打印字符
putchar('*');
}
for (j=0; i>=n&&j<2*n-1-2*(i-n+1); j++){
putchar('*');
}
putchar('\n'); //换行
}
return 0;
}