急求解
输入1输出 *
/////////* *
//////////*
输入2输出 *
/////////* *
////////* * *
/////////* *
//////////*
输入3输出 *
//////////* *
/////////* * *
////////* * * *
/////////* * *
//////////* *
///////////*
输入4输出 *
///////////* *
//////////* * *
/////////* * * *
////////* * * * *
/////////* * * *
//////////* * *
///////////* *
////////////*
图为“*” “/”为空白
依次下去输入任何数都可以
[解决办法]
试试吧。
- C/C++ code
int PrintDiamond(const int & n){ if(n<1) return -1; for(int i=0;i<n+1;i++) { for(int j=0;j<n-i;j++) printf(" "); for(int k=0;k<i+1;k++) printf("* "); printf("\n"); } for(int i=0;i<n;i++) { for(int j=0;j<i+1;j++) printf(" "); for(int k=0;k<n-i;k++) printf("* "); printf("\n"); }}
[解决办法]
- C/C++ code
#include <stdio.h>#define N 12 int main(void) { int x,y,k=0; for(x=-N;x <=N;++x,k=0,putchar('\n')) for(y=-N;y <=N;++y) if(x <=y+N && x>=-y-N && x>=y-N&&x<=-y+N) putchar(((++k)&1)?'*':' '); else putchar(' '); getchar(); return 0; }
[解决办法]
- C/C++ code
#include <iostream>using namespace std;void PrintDiamond(const int N){ for(int x= -N, k=0; x <= N; ++x) { for(int y= -N; y <= N; ++y) { if(x <= y+N && x >= -y-N && x >=y-N && x<= -y+N) { cout<< ((++k)%2 ? "*" : " "); } else { cout<<" "; } } cout<<" "<<endl; k = 0; }}int main(int argc, char* argv[]){ while(1) { int N; cout<<"Please input number: "; cin>>N; if(!cin || 0==N) { break; } else { PrintDiamond(N); } } return 0;}
[解决办法]
2楼的代码好简练啊,学习一下
[解决办法]
学习学习...
[解决办法]
2楼的代码简练,但每次都要修改参数
不如三楼的跟符合题意
[解决办法]
其实算法都是一样的
[解决办法]
学习回复内容太短了!