1 ***算法:把菱形的中心看成坐标的原点(0,0),由此可以知道,如果|x| + |y| <= n;则打印输出"*"号,否则打印输出" "
1 int mai(){ 2 3 int n; 4 5 printf("请输入来那个菱形边长:"); 6 7 scanf("%d",&n); 8 9 //打印实心菱形 10 11 for (int x = -(n-1); x <= n-1; x++){ 12 13 for (int y = -(n-1); y <= n-1; y++){ 14 15 if(abs(x) + abs(y) <= n-1){ 16 17 printf("*"); 18 19 }else{ 20 21 printf(" "); 22 23 } 24 25 } 26 27 printf("\n"); 28 29 } 30 31 //打印空心菱形 32 33 for (int x = -(n-1); x <= (n-1); x++){ 34 35 for (int y = -(n-1); x <= (n-1); y++){ 36 37 if(abs(x) + abs(y) == (n-1)){ 38 39 printf("*"); 40 41 }else { 42 43 printf(" "); 44 45 } 46 47 } 48 49 printf("\n"); 50 51 } 52 53 54 55 return 0; 56 57 }

浙公网安备 33010602011771号