编写一个菱形,只用到一次' '和一个' *',有需要的同志可以参考!
我在网上看过一些,算法都差不多是这样的:程序代码:
#include <iostream> using namespace std; void main( ) { int x, y, k; int n; cout<<"enter n = "; cin>>n; for(x=1; x<=n; x++){ for(k=0; k<=n-x; k++) printf(" "); for(y=1; y<=x; y++) printf("%2c",'*'); //等价于 cout<<" *"; cout<<endl; } for(x=n-1; x>=1; x--) { for(k=0; k<=n-x; k++) printf(" "); for(y=1; y<=x; y++) printf("%2c",'*'); //等价于 cout<<" *"; cout<<endl; } }
下面跟大家分享一下我的算法 (在整个程序中只出现过一次‘ ’ 和 一次‘*’):
程序代码:
#include <iostream> using namespace std; void main( ) { int n; int i, j; cout<<"enter n = "; cin>>n; for(i=1; i<2*n; i++){ for(j=1; j<2*n; j++){ if((i+j>=n+1 && i+j<=3*n-1) && (1-n<=i-j && i-j<=n-1)) putchar('*'); else putchar(' '); } putchar('\n'); } }
[ 本帖最后由 鶄鵅 于 2010-4-5 20:35 编辑 ]