零基础都会的菱形
- 怎么打印呢?
- 哦直接printf造起
- esay
int main()
{
printf(" *\n");
printf(" ***\n");
printf(" *****\n");
printf(" *******\n");
printf(" *********\n");
printf(" *******\n");
printf(" *****\n");
printf(" ***\n");
printf(" *\n");
return 0;
}
开个玩笑
思维导图
代码
- (博主)易错点
- 1:把下半部分写看成另一个循环。。。
//打印菱形
int main()
{
int n = 0;
scanf("%d", &n);
int i = 0;
//上半部分
for ( i = 0; i <n; i++)
{
int j = 0;
//空格
for ( j = 0; j <n-i-1; j++)
{
printf(" ");
}
// *
for ( j = 0; j <2*i+1 ; j++)
{
printf("*");
}
printf("\n");
}
//下
for ( i = 0; i < n-1; i++)
{
//空格
int j = 0;
for ( j = 0; j <=i; j++)
{
printf(" ");
}
//*
for (j = 0; j < 2 *(n-1-i)-1; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
解析一下俩句代码
(1)for ( j = 0; j <2*i+1 ; j++)
(2)for (j = 0; j < 2 *(n-1-i)-1; j++)
(1)
应为每次打印的*都是奇数次,1,3,5,7,9,11
(2)
下面就是倒过,大致就是俩倍的行-1