输入一个正整数n,程序作出判断,如果不是奇数,则要求重新输入,直到n为奇数为止。输出n行菱形
辛苦写出来的代码如下:
#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;
}
}
}