C++如何打印菱形

#include<stdio.h>
void main()
{
int i;
int j;
int k;
for(i=0;i<=10;i++)
{
for(j=0;j<=9-i;j++)
printf(" ");
for(k=0;k<2*i;k++)
printf("*");
printf("\n");

}

for(i=0;i<=10;i++)
{
for(j=0;j<=(1+i)-1;j++)
printf(" ");
//for(k=0;k<;k++)//这我应该写什么好???
printf("*");
printf("\n");
}
getchar();
}

可不可以每一行代码都给我写出意思来呀??我不懂他的算法,,for不怎么会用,

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;j<=n-i;++j) 

cout<<" "; 

for(j=1;j<=i;++j) 

cout<<"* "; 

cout<<endl; 

return 0; 

}

c++打印菱形图示例图:

1、上半层:


2、下半层:

3、运行结果:

扩展资料:

制作思路:

1、先来分析分割线上半部分的规律:

上半部分外层循环了4次,可以用一个循环来解决for(int i=0 ;i<4 ;i++)。

对比分析:

第一轮循环i=0的时候空格的打印次数是3,星星打印的次数是1

第二轮循环i=1的时候空格的打印次数是2,星星打印的次数是3。。

第三轮循环i=2的时候空格的打印次数是1,星星打印的次数是5。

第四轮循环i=3的时候空格的打印次数是0,星星打印的次数是7。

空格打印的循环次数随着外层循环次数的增加而减少,这样就很明显看出空格打印的循环和外层循环的规律:for(int j=0;j<3-i;j++)。

星星打印增加循环次数都是外层循环的次数增加次数的2倍,这样就很明显看出星星打印的循环和外层循环的规律:for(int k=0;k<1+2*i;k++)。

2、再来就是分析分割线下半部分的规律:

下半部分外层循环了3次,可以用一个循环来解决for(int i=0 ;i<3 ;i++)

第一轮循环i=0的时候空格的打印次数是1,星星打印的次数是5。

第二轮循环i=1的时候空格的打印次数是2,星星打印的次数是3。

第三轮循环i=2的时候空格的打印次数是3,星星打印的次数是1。

空格打印的循环次数随着外层循环次数的增加而增加,这样就很明显看出空格打印的循环和外层循环的规律:for(int j=0;j<1+i;j++)

星星打印循环次数随外层循环的增加而减少,减少的规律是外层增加的2倍,这样就很明显看出星星打印的循环和外层循环的规律:for(int k=0;k<5-2*i;k++)。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-08-21
1、include,main,printf不要拼错了,拼错了也会报错
2、一行结束一定要有结束符,是以“;”表示
3、for循环里面,给的条件要有开始和结束,不然会死循环一直到内存被沾满才会停止
4、{ }一对是对称的,不能多,也不能少,不然会报错
5、要了解for循环的原理,for循环里面给定的条件的意思
6、编译不通过的话,说明源码错误,点击下方的错误会有蓝色箭头显示哪一个代码错误
7、编译,连接,运行都不保错的话,显示的菱形不对称,有两点说明:一个就是输入的不是奇数,还有就是源码中有逻辑错误,需要调试
#include "stdio.h"
void main()
{
int i,j;
for(i=1;i<=7;i=i+2)
{for(j=0;j<(7-i)/2;j++)
printf(" ");
for(j=1;j<=i;j++)
{
printf("*");
}
printf("\n");
}
for(i=5;i>=1;i=i-2)
{
for(j=0;j<(7-i)/2;j++)
printf(" ");
for(j=1;j<=i;j++)
{
printf("*");
}
printf("\n");
}
}

C++是在C语言的基础上开发的一种通用编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。最新正式标准C++14于2014年8月18日公布。[ 其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性!
第2个回答  2018-02-07
#include<iostream>
using namespace std;
int main()
{
int n;
cin >> n;
for (int i = 1; i <=n; i++)

{
for (int j = 1; j <= n - i; j++)
cout << " ";
for (int k =1;k<=2*i-1;k++)
cout << "*";
cout << endl;
}
for (int i = 1; i <= n - 1; i++)
{
for (int j = 1; j <= i; j++)
cout << " ";
for (int k=1;k<=2*(n-i)-1;k++)
cout << "*";
cout << endl;
}
return 0;
}
//n阶实心菱形,从三方面去考虑,一是菱形分为上下两部分去考虑,一部分为一个大for循环来实现,二是每一部分又分为每一行去考虑,每一次循环实现菱形的一行,三是每一行中,空格是一部分,星星是一部分,分别用for循环来实现。其中上半部分,空格既与阶数有关也与行数有关,星星只与行数有关,下半部分,空格只与行数有关,星星既与阶数有关也与行数有关本回答被网友采纳
第3个回答  2010-06-08
//用*号输出菱形(行数自定义)
#include<stdio.h>
void main()
{
int i,j,k;
for(i=1;i<=10;i++) //先打印上边的10行
{
for(j=1;j<=10-i;j++) //控制要打印的空格数量
printf(" ");
for(k=1;k<=2*i-1;k++) //控制要打印的星号数
printf("*");
printf("\n");
}

for(i=9;i>=1;i--) //先打印上边的9行
{
for(j=1;j<=10-i;j++) //控制要打印的空格数量
printf(" ");
for(k=1;k<=2*i-1;k++) //控制要打印的星号数
printf("*");
printf("\n");
}
}本回答被提问者采纳
第4个回答  2015-08-22

    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;j<=n-i;++j) 

    cout<<" "; 

    for(j=1;j<=i;++j) 

    cout<<"* "; 

    cout<<endl; 

    return 0; 

    }