输入一个正整数n,程序作出判断,如果不是奇数,则要求重新输入,直到n为奇数为止。输出n行菱形

如输入n=7,则*************************... 如输入n=7,则
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*
展开
 我来答
zhangh82
2011-12-19 · TA获得超过526个赞
知道答主
回答量:39
采纳率:0%
帮助的人:51.5万
展开全部

辛苦写出来的代码如下:

#include <iostream>

#include <cmath>

using namespace std;

bool primeNumber(unsigned);

void display(unsigned );

int main ()

{

unsigned n;

cout<<"请输入一个奇数:"<<endl;

cin>>n;

while(!primeNumber(n))

{

cout<<"输入的不是奇数,请输入一个奇数:"<<endl;

cin>>n;

}

display(n);

return 0;

}

bool primeNumber(unsigned a)

{

unsigned divisor=2;

unsigned remainder;

while(true){

remainder = a%divisor;

if(remainder == 0)

return false;

if(remainder == 1)

return true;

}

}

void display(unsigned b)

{

if (b==1)

cout<<'*'<<endl;

else

{   

int j=1;

for(int a=0;a!=(b-j)/2;a++)

cout<<' ';

for(int i=0;i!=j;i++)

cout<<'*';

for(int c=0;c!=(b-j)/2;c++)

cout<<' ';

cout<<endl;

j=j+2;

while(j!=b)

{

for(int a=0;a!=(b-j)/2;a++)

cout<<' ';

for(int i=0;i!=j;i++)

cout<<'*';

for(int c=0;c!=(b-j)/2;c++)

cout<<' ';

cout<<endl;

j=j+2;

}

for(int x=0;x!=j;x++)

cout<<'*';

cout<<endl;

j=j-2;

while(j>0)

{

for(int a=0;a!=(b-j)/2;a++)

cout<<' ';

for(int i=0;i!=j;i++)

cout<<'*';

for(int c=0;c!=(b-j)/2;c++)

cout<<' ';

cout<<endl;

j=j-2;

}

}

}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式