|
//题目:打印下面图形
*
* *
* * *
* * * *
* * *
* *
*
一,%4.1s中4指字符数,1指数组str中一个元素
int main()
{
char str[]="* * * *";
printf("%4.1s\n",str);
printf("%5.3s\n",str);
printf("%6.5s\n",str);
printf("%7.7s\n",str);
printf("%6.5s\n",str);
printf("%5.3s\n",str);
printf("%4.1s\n",str);
}
二,两个循环分别控制行与列,是最常用的方法。只要注意观察其规律就可写出。
int main()
{
int i,j,k;
for(i=1;i<=4;i++) /*输出上面4行*/
{
for(j=1;j<=4-i;j++)printf(" ");
for(k=1;k<=i;k++)printf("* ");
printf("\n");
}
for(i=1;i<=3;i++) /*输出下面三行*/
{
for(j=1;j<=i;j++)printf(" ");
for(k=1;k<=4-i;k++)printf("* ");
printf("\n");
}
}
三,和方法二差不多,只是用了len来控制空格数。
int main()
{
int i,m,n,len=3;
for (i=1;i<=4;i++)
{
printf("\n");
for (n=1;n<=len;n++)printf(" ");
len--;
for(m=1;m<=i;m++)printf("* ");
}
len=1;
for (i=3;i>=1;i--)
{
printf("\n");
for (n=1;n<=len;n++)printf(" ");
len++;
for(m=i;m>=1;m--)printf("* ");
}
}
四,先写两个函数分别控制空格与*的打印
void printSpace(int i)
{
int j;
for(j=1;j<=i;j++)printf(" ");
}
void printStar(int i)
{
int j;
for(j=1;j<=i;j++)printf("* ");
printf("\n");
}
int main()
{
int i;
for (i=1;i<=4;i++)
{
printSpace(4-i);
printStar(i);
}
for (i=3;i>=1;i--)
{
printSpace(4-i);
printStar(i);
}
}
应该还有其它方法,但目前只能想到这些了。 |
|