上题目:
- 要求, 输入菱形的宽 n,表示最宽地方的 * 个数,例如下图 n = 7

C语言实现
- 技巧:
- (1) 将菱形(如上图)分开为 上三角形,和倒三角形实现。
- (2) 分别找到 每行输出 空格 与 * 号的规律
#include<stdio.h>
int main()
{
int n, m, c, i;
printf("请输入*号的个数,代表菱形宽度:\n");
scanf("%d", &n);
for(i=1; i<= (n + 1)/2; i++)
{
for(m=1; m<= (n + 1)/2 - i; m++)
{
printf(" ");
}
for(c=1; c<=2*(i-1)+1; c++)
{
printf("*");
}
printf("\n");
}
for(i=1; i<(n/2 + 1); i++)
{
for(c=1; c<=i; c++)
{
printf(" ");
}
for(m=1; m<=((n+1)/2 - i) * 2 -1; m++)
{
printf("*");
}
printf("\n");
}
return 0;
}
python实现
- 写的稍有点乱,但是就是这么个东西,参考C语言的实现, 里面的逻辑其中都没变,照抄的。只是语言不同,实现起来代码不一样。
n = int(input("请输入菱形的宽度:"))
for i in range(1, int((n + 1)/2) + 1):
print(" "*int(((n + 1)/2 - i)) , "*"*(2*(i-1)+1))
for i in range(1, int((n + 1)/2)):
print(" "*i , "*"*((int((n+1)/2) - i) * 2 - 1))
print(type(5/3))