大一新生,有问题请教
在屏幕上编出一个菱形,菱形用*表示,共9行9列。各位大侠,谁能帮忙编写一下这个图的代码。十分感谢。看了很久就是不懂写。
程序代码:#include <stdio.h>
#define IABSX(x) ( (x-i) >= 0 ? (x-i) : (i-x) )
#define IABSY(y) ( (y) >= 0 ? (y) : -(y) ) //定义一个计算绝对值的宏
void print(int size,int i)
{
int x,y;
for (y = -size; y <= size; y++)
{
for (x = -size-i; x <= size+i; x++)
{
if ( IABSX(x) + IABSY(y) <= size )
putchar('*');
else
putchar(' ');
}
putchar('\n');
}
}
int main()
{ int i,n,j=0;
do
{
printf("请输入表演时间:\n");
scanf("%d",&n);
for(i=0;i<=n;i++)
print(i,i);
getchar();
j++;
}while(j<30);
return 0;
}
程序代码:#include <stdio.h>
void main()
{
int i,j,k;
for(i=0;i<=4;i++)
{
for(j=0;j<=3-i;j++)
printf(" ");
for(k=0;k<=2*i;k++)//多了一个分号
printf("*");
printf("\n");
}
for(i=0;i<=3;i++)
{
for(j=0;j<=i;j++)
printf(" ");
for(k=0;k<=6-2*i;k++)
printf("*");
printf("\n");
}
}



程序代码:
#include <stdio.h>
main()
{
int i,j,N;
scanf("%d",&N);
for(i=1;i<=N;i++) /*输出上半部分*/
{
for(j=1;j<=N-i;j++)
printf(" "); /*输出空格*/
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
for(i=N-1;i>=1;i--) /*输出下半部分*/
{
for(j=1;j<=N-i;j++)
printf(" "); /*输出空格*/
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
}