怎么用c++输出一个菱形

如题所述

最简单
#include <iostream>

using namespace std;

int main()
{
cout << " * " << endl;
cout << " * * " << endl;
cout << " * * " << endl;
cout << " * * " << endl;
cout << " * " << endl;

return 0;
}

另外的实现:
#include <iostream>

using namespace std;

void printlozenge(int n);

int main()
{
int nPoint = 0; // 每个边的点数
do
{
cout << "请输入菱形的大小:";
cin >> nPoint;
printlozenge(nPoint);
}
while (nPoint != -1);

return 0;
}

void printlozenge(int nPoint)
{
int nSpaceLeft = nPoint;
int nSpaceMiddle = 0;
int nSpaceRight = nPoint;
int sign = 1;
for (int i = 1; i < nPoint * 2; ++i)
{
for (int i = 0; i < nSpaceLeft; ++ i) // 输出中间的空格
{
cout << " ";
}

cout << "*"; // 输出的*号

if (nSpaceMiddle != 0) // 如果中间空格不为空
{
for (int i = 1; i < nSpaceMiddle; ++ i) // 输出中间的空格
{
cout << " ";
}
cout << "*"; // 输出的*号
}

cout << endl;

if (i == nPoint) // 绘制了上半部分
{
sign = -1;
}
nSpaceLeft -= sign;
nSpaceMiddle += 2 * sign;
nSpaceRight -= sign;

}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-09-26
我调试过了,你试试看。
#include<iostream>
using namespace std;

void trg1(unsigned int); //正三角(上半个菱形)
void re_trg1(unsigned int); //反三角(下半个菱形)

int main()
{
unsigned int k;
cout<<"请输入半个菱形行数:"<<endl;
cin>>k;
trg1(k);
re_trg1(k);
return 0;
}

void trg1(unsigned int n)//正三角(上半个菱形)
{
unsigned i, j;
for(i=1; i<=n; i++)
{
for(j=1; j<(n-i+1); j++)
cout<<' ';
for(j=1; j<=(2*i-1); j++)
cout<<'*';
cout<<endl;

}
}

void re_trg1(unsigned int n)//反三角(下半个菱形)
{
unsigned i, j;
for(i=1; i<=n; i++)
{
for(j=1; j<=(i-1); j++)
cout<<' ';

for(j=1; j<=(2*(n-i)+1); j++)
cout<<'*';
cout<<endl;

}
}本回答被网友采纳
第2个回答  2011-10-18
#include <iostream>

using namespace std;

void printlozenge(int n);

int main()
{
int nPoint = 0; do
{
cout << "";
cin >> nPoint;
printlozenge(nPoint);
}
while (nPoint != -1);

return 0;
}

void printlozenge(int nPoint)
{
int nSpaceLeft = nPoint;
int nSpaceMiddle = 0;
int nSpaceRight = nPoint;
int sign = 1;
for (int i = 1; i < nPoint * 2; ++i)
{
for (int i = 0; i < nSpaceLeft; ++ i) // {
cout << " ";
}

cout << "*"; if (nSpaceMiddle != 0) {
for (int i = 1; i < nSpaceMiddle; ++ i) cout << " ";
}
cout << "*"; }

cout << endl;

if (i == nPoint) {
sign = -1;
}
nSpaceLeft -= sign;
nSpaceMiddle += 2 * sign;
nSpaceRight -= sign;

}
}

怎么用c++输出一个菱形
for (int i = 1; i < nPoint * 2; ++i){ for (int i = 0; i < nSpaceLeft; ++ i)\/\/ 输出中间的空格 { cout << " ";} cout << "*";\/\/ 输出的*号 if (nSpaceMiddle != 0)\/\/ 如果中间空格不为空 { for (int i = 1; i < nSpaceMiddle; ++ i)\/\/ 输出中间的空...

C或C++语言打印一个空心的菱形?
方法一:循环输出n行,每行分5个部分。分别是:左边的空格,字符1,中间的空格,字符2,右边的空格。循环控制空格输出个数,实现打印效果。方法二:根据行数,定义一个字符串表示一行最大宽度(动态申请)。定义2指针,初始指向字符串中间位置。循环,两指针先往两边移动,到头就往回移动。每次循环,指针...

怎么用C++输出一个菱形
using namespace std;int main(){ int i,max,k,x;cout<<"请输入最多*的个数:";cin>>max;\/\/输入的数控制菱形的大小 cout<<endl;for(i=max;i>=0;i--){ for(k=i;k>=0;k--)\/\/k循环控制每行前面的空格 cout<<" ";for(x=i;x<=max-1;x++)\/\/x循环控制每行*和空格的个数 ...

C++如何打印菱形
int main(){ int n;cin>>n;cout<<"要得到的菱形的大小:"<<endl;for(int i=1;i<=n;++i){ for(int j=1;j<=n-i;++j)cout<<" ";for(j=1;j<=i;++j)cout<<"* ";cout<<endl;} for( i=n;i>=1;--i){ for(int j=1;j<=n-i;++j)cout<<" ";for(j=1;j<=i;...

C++如何打印菱形
C++ 代码如下:include <iostream> using namespace std;int main(){ int n;cin>>n;cout<<"要得到的菱形的大小:"<<endl;for(int i=1;i<=n;++i){ for(int j=1;j<=n-i;++j)cout<<"";for(j=1;j<=i;++j)cout<<"";cout<<endl;} for(i=n;i>=1;--i){ for(int j=1...

c++,输入一个整数,输出一个由-和*组成的菱形图案。
include "math.h" \/\/由于用到abs函数(取绝对值),如果自己实现该函数可不加此行。int main(){ int i=0;int j=0;int n=9; \/\/改变这个n值可以改变菱形的大小,奇数有效 for(i=0;i<n;i++){ for(j=0;j<abs(n\/2-i);j++){ printf("-");} for(j=0;j<n-abs(n\/2-...

c++打印出如下图案(菱形)
代码如下:include<stdio.h>int main(){ int a[7] = {1,3,6,8,6,3,1}; int b[7] = {3,2,1,0,1,2,3}; int i,j,k; for(k=0;k<7;k++){ for(j = 0;j<b[k];j++) printf(" "); for(i = 0;i...

怎么用C++输出一个菱形
void main(){ int i,j;for(i=1;i<=4;i++){ for(j=i;j<=4;j++)printf(" ");for(j=1;j<=i*2-1;j++)printf("* ");printf("\\n");} for(i=3;i>=1;i--){ for(j=i-1;j<=3;j++)printf(" ");for(j=1;j<=i*2-1;j++)printf("* ");printf("\\n");...

C语言 用循环语句输出菱形图案?
可以使用嵌套循环语句来输出菱形图案。以下是一个示例代码:```include <stdio.h> int main() { int i, j, n;printf("请输入菱形图案的行数:");scanf("%d", &n);\/\/ 输出上半部分 for (i = 1; i <= n; i++) { for (j = 1; j <= n - i; j++) { printf(" ");} ...

用c++编程。用“*”符号在屏幕上输出菱形,正三角形,平行四边形。_百度...
include using namespace std; #define N 二0 int main() { int j,i,map[N+一][N+一]; for(i=0;i<=N;i++) for(j=0;j<=N;j++) if(abs(j+i-N)<=N\/二 &&abs(j-i)<=N\/二) map[i][j]=一; else map[i][j]=0; for(i=0;i<=N;i...

相似回答