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

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

这样的 *
* *
* * *
* *
*
问题补充:写出全补的过程 不要全是*号打出来的 必须有空格

#include <iostream>
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循环控制每行*和空格的个数
{
cout<<"*";
cout<<" ";
}
cout<<endl;
}
for(i=max-1;i>=0;i--)//此后为上面循环的逆过程
{
for(k=i;k<=max;k++)
cout<<" ";
for(x=i;x>=1;x--)
{
cout<<"*";
cout<<" ";
}
cout<<endl;
}
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-07-23
前面两个 我看了下多少是不符合你的要求 的。第一个回答者的答案实在是复杂,汗。。。用了6个for语句,跟你提供的明显是不一样的;第二个回答者的答案是错的了,我运行过 了,你不信可以自己试试的;我想输出棱形为什么不直接用printf函数输出呢???
是不是我的想法过于简单了呢 无语。。。。
你试试我的简单的看看 跟你是不是一样。。。?
不好的话,笑笑就过去算了 呵呵毕竟我学C没多久

#include "stdio.h"
void main()
{
printf(" * \n");
printf(" * * \n");
printf(" * * * \n");
printf(" * * \n");
printf(" * \n");
}

886
第2个回答  推荐于2017-09-28

    参考C++ 代码: 
    #include <iostream>
    using namespace std;

    void Diamond(int n,int i); 

    int main()
    {
     Diamond(5,0);
     return 0;
    }
    void Diamond(int n,int i)
    {
     
     int j;
     if(i==n) return ;
     
     for(j=0;j <=n-i;j++)
      cout << " ";
     for(j=0;j <(2*i-1);j++)
      cout << "*";
     cout << endl;
     
     Diamond(n,i+1);
     
     for(j=0;j <=n-i;j++)
      cout << " ";
     for(j=0;j <(2*(i)-1);j++)
      cout << "*";
     cout << endl;  
    }

第3个回答  2010-07-22
好的!我为你编一个!我在VC++里面完全可以运行!#include "stdio.h"
void main()
{char a[][5]={{' ',' ','*'},{' ','*',' ','*'},{' ','*','*','*',' '},{' ','*',' ','*'},{' ',' ','*'} };
int i,j;
for(i=0;i<5;i++)
{for(j=0;j<5;j++)

printf("%c",a[i][j]);

printf("\n");

}

}
第4个回答  2019-07-20
参考C++
代码:
#include
<iostream>
using
namespace
std;
void
Diamond(int
n,int
i);
int
main()
{
Diamond(5,0);
return
0;
}
void
Diamond(int
n,int
i)
{

int
j;
if(i==n)
return
;

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

Diamond(n,i+1);

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

怎么用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...

相似回答