大一新生,有问题请教
在屏幕上编出一个菱形,菱形用*表示,共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"); } }