题目描述:
树分为五部分,从第一部分到第三部分,每部分的宽度分别为 r, r + d, r + 2 * d, 然后第四部分为树干,第五部分为土壤。然后给出“树干”的宽度和高度r1,h1和土壤”的宽度和高度r2,h2。(保证r1,r2都为奇数)。设计程序输出对应大小的树。
#include#define N 10000 int main() { int i,j,a[N],r,r1,r2,d,h1,h2; scanf("%d%d",&r,&d); scanf("%d%d%d%d",&r1,&h1,&r2,&h2); if(r+2*d>=r2) { for(i=0;i<(r+1)/2;i++) { for(j=1;j<=r+2*d;j++) { if(j>=(r+2*d+1)/2-i&&j<=(r+2*d+1)/2+i) printf("*"); else printf(" "); } printf("n"); } for(i=0;i<(r+d+1)/2;i++) { for(j=1;j<=r+2*d;j++) { if(j>=(r+2*d+1)/2-i&&j<=(r+2*d+1)/2+i) printf("*"); else printf(" "); } printf("n"); } for(i=0;i<(r+2*d+1)/2;i++) { for(j=1;j<=r+2*d;j++) { if(j>=(r+2*d+1)/2-i&&j<=(r+2*d+1)/2+i) printf("*"); else printf(" "); } printf("n"); } for(i=1;i<=h1;i++) { for(j=1;j<=r+2*d;j++) { if(j>=(r+2*d+1)/2-(r1-1)/2&&j<=(r+2*d+1)/2+(r1-1)/2) printf("*"); else printf(" "); } printf("n"); } for(i=1;i<=h2;i++) { for(j=1;j<=r+2*d;j++) { if(j>=(r+2*d+1)/2-(r2-1)/2&&j<=(r+2*d+1)/2+(r2-1)/2) printf("*"); else printf(" "); } printf("n"); } } else{ for(i=0;i<(r+1)/2;i++) { for(j=1;j<=r2;j++) { if(j>=(r2+1)/2-i&&j<=(r2+1)/2+i) printf("*"); else printf(" "); } printf("n"); } for(i=0;i<(r+d+1)/2;i++) { for(j=1;j<=r2;j++) { if(j>=(r2+1)/2-i&&j<=(r2+1)/2+i) printf("*"); else printf(" "); } printf("n"); } for(i=0;i<(r2+1)/2;i++) { for(j=1;j<=r2;j++) { if(j>=(r2+1)/2-i&&j<=(r2+1)/2+i) printf("*"); else printf(" "); } printf("n"); } for(i=1;i<=h1;i++) { for(j=1;j<=r2;j++) { if(j>=(r2+1)/2-(r1-1)/2&&j<=(r2+1)/2+(r1-1)/2) printf("*"); else printf(" "); } printf("n"); } for(i=1;i<=h2;i++) { for(j=1;j<=r2;j++) { printf("*"); } printf("n"); } } return 0; }
运行代码结果



