有关菱形程序不懂
#include <stdio.h>#define M 3 /*可以自定义菱形的大小*/
int main(int argc, char** argv)
{
int i,j,k;
for(i=0;i<=M;i++)/*上半部分的行数*/
{
for(j=0;j<=M-1-i;j++)/*打印空格的个数,我是以0开始的*/
printf(" ");
for(k=0;k<=2*i;k++)/*,假如除去空格外都打印“*”,则以2*i+1打印"*"个数,这是每一行的特点*/
{
if(k==0||k==2*i)/*然后只选择你要打印的“*”位置的个数*/
printf("*");
else
printf(" ");/*之间的全为空格*/
}
printf("\n");
}
for(i=0;i<=(M-1);i++)/*下半部分比上班部分少一行*/
{
for(j=0;j<=i;j++)
printf(" ");
for(k=0;k<=2*(M-1)-2*i;k++)/*判断k时没有合并式子,仅供学习探究,这点判断很重要,留作你自己思考了*/
{
if(k==0||k==2*(M-1)-2*i)/*同上分析*/
printf("*");
else
printf(" ");
}
printf("\n");
}
return 0;
}
}
只有行和列,为什么多一个循环的变量出来,不懂,求高手指点,而且这个函数运行不是我想要的菱形,需要怎么改才能打印出菱形出来啊.