#include<iostream> using namespace std; // 因为n最大不超过30,足够用 char a[150][150]; void hua(int m,int temp){ int up=temp+3; int x1,y1,x2,y2,x3,y3,x4,y4; // 向上画 for(int i=0;i<up;i++){ x1=m-i; y1=m-4-temp; a[x1][y1]='$'; } // 向右画 for(int i=1;i<3;i++){ x2=x1; y2=y1+i; a[x2][y2]='$'; } // 向上画 for(int i=1;i<3;i++){ x3=x2-i; y3=y2; a[x3][y2]='$'; } //向右画 int right=temp+2; for(int i=1;i<=right;i++){ x4=x3; y4=y3+i; a[x4][y4]='$'; } } int main() { int n; cin>>n; // 全部打印“.” // 边长:中间十字+两边各2*n int r=5+n*4; // 中心位置横纵坐标 int m=r/2; for(int i=0;i<r;i++){ for(int j=0;j<r;j++){ a[i][j]='.'; } } // 打印中间十字左上角 for(int i=0;i<3;i++){ a[m][m-i]='$'; a[m-i][m]='$'; } // 画出全图左上角 int temp=0; while(n--){ hua(m,temp); temp=temp+2; } // 上下对称 for(int i=1;i<=m;i++){ for(int j=0;j<r;j++){ a[m+i][j]=a[m-i][j]; } } // 左右对称 for(int i=0;i<r;i++){ for(int j=0;j<m;j++){ a[i][r-j-1]=a[i][j]; } } // 输出 for(int i=0;i<r;i++){ for(int j=0;j<r;j++){ cout<<a[i][j]; } cout<<endl; } return 0; }
0.0分
1 人评分
2006年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:808 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:501 |
淘淘的名单 (C语言代码)浏览:1100 |
三角形 (C++代码)递推浏览:755 |
简单的a+b (C语言代码)浏览:415 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:506 |
矩阵乘方 (C语言代码)浏览:1023 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:679 |
【魔板】 (C++代码)浏览:1158 |
【出圈】 (C++代码)简单循环浏览:630 |