解题思路:看下图(3层的图形),可以看出规律。最中间的是一个十字架。外层由3个封闭的框围起来。
一个框可以分成以下部分:上下两边,左右两边,左上角,右上角,左下角,右下角。
按照这个思路一层层写程序即可。
参考代码:
#include <stdio.h> #include <string.h> char s[250][250]; int main() { int i,j,k,n; int m; memset(s,'.',sizeof(s)); //全部赋值为. scanf("%d",&n); m=4*n+5; //n层对应的行数和列数 k=2; i=0; while(n--) //n层 { for(j=k;j<m-k;j++) { s[i][j]=s[m-1-i][j]='$'; //上下两边 s[j][i]=s[j][m-1-i]='$'; //左右两边 } s[k][k]=s[k][k-1]=s[k-1][k]='$'; //左上角 s[k][m-1-k]=s[k][m-1-(k-1)]=s[k-1][m-1-k]='$'; //右上角 s[m-1-k][k]=s[m-1-k][k-1]=s[m-1-(k-1)][k]='$'; //左下角 s[m-1-k][m-1-k]=s[m-1-k][m-1-(k-1)]=s[m-1-(k-1)][m-1-k]='$'; //右下角 k=k+2; i=i+2; } i=j=m/2; for(k=1;k<=2;k++) //中间的十字架 { s[i][j]='$'; s[i-k][j]=s[i+k][j]='$'; s[i][j-k]=s[i][j+k]='$'; } for(i=0;i<m;i++) //输出整个图形 { for(j=0;j<m;j++) printf("%c",s[i][j]); printf("\n"); } return 0; }
0.0分
2 人评分
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:1238 |
C语言程序设计教程(第三版)课后习题6.3 (Java代码)浏览:695 |
C语言训练-自由落体问题 (C语言代码)浏览:1775 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:632 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:674 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:593 |
母牛的故事 (C语言代码)浏览:1451 |
C语言训练-自由落体问题 (C语言代码)浏览:650 |
母牛的故事 (C语言代码)浏览:1046 |
矩阵乘方 (C语言代码)浏览:1079 |