C++如何打印菱形

作者&投稿:左夏 (若有异议请与网页底部的电邮联系)
c++怎么打印出一个菱形?~

#include
void main()
{
int i,j,x,y,k,h,num;
char change;

for(;;)
{
printf("请依次输入菱形的行数、右移距离.注意行数一般为奇数,偶数自动加一行:
");
scanf("%d%d",&num,&h);
printf("是否为空心y or n:");
fflush(stdin);
scanf("%c",&change);
if(num+h>79||num<=1||change!='y'&&change!='n')
printf("输入有误!![行数+右移距离不能大于79,只识别y/n]请重新输入!
");
else break;
}
x=num/2+1;
y=num/2;
for(i=0;i<=x-1;i++)
{

for(j=1;j<=x-1-i+h;j++)
{
printf(" ");
}
if(change=='y')
{
printf("*");
for(k=3;k<=2*i+1;k++)
{
printf(" ");
}
if(i!=0)
printf("*
");
else
printf("
");
}
if(change=='n')
{
for(k=1;k<=2*i+1;k++)
{
printf("*");
}
printf("
");
}
}
for(i=0;i<=y-1;i++)
{

for(j=0;j<=i+h;j++)
{
printf(" ");
}
if(change=='y')
{
printf("*");
for(k=3;k<=2*(y-1)+1-2*i;k++)
{
printf(" ");
}
if(i!=y-1)
printf("*
");
else
printf("
");
}
if(change=='n')
{
for(k=1;k<=2*(y-1)+1-2*i;k++)
{
printf("*");
}
printf("
");
}
}

}
这是我写的

#include#include
main(){int i,j,k;for(i=0;i<=3;i++) { for(j=0;j<=2-i;j++) printf(" "); for(k=0;k<=2*i;k++) printf("*"); printf("
"); }for(i=0;i<=2;i++) { for(j=0;j<=i;j++) printf(" "); for(k=0;k<=4-2*i;k++) printf("*");
printf("
"); }}

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、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日公布。[ 其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性!

#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循环来实现。其中上半部分,空格既与阶数有关也与行数有关,星星只与行数有关,下半部分,空格只与行数有关,星星既与阶数有关也与行数有关

//用*号输出菱形(行数自定义)
#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");
}
}

  1. C++ 代码如下:

  2. #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; 

    }




用java打印菱形。
一、整体实现思路:菱形9行9列可以将菱形分成上下两个三角形,分析每行空格数和星号个数的关系。二、一个三角形的实现思路:以输出一个空心三角形为例:(1)空格的输出按-1递减,字符的输出按等差数列,公差为2 (2)判断第一行和最后一行照常输出。(3)中间行仅输出两个字符。三、菱形分实心和...

用C语言打印菱形图案的方法是什么?
下面的程序是菱形打印的【终结者】,改变下设置,就基本可以满足所有菱形打印的题目。程序主体 for 语句只有9行,简单而强大 *\/#include <stdio.h>#include <stdlib.h>#include <string.h>\/\/ 这个小函数用来输出 repeatTimes 个字符 includevoid main(){printf(" *\\n");printf(" ***\\n");...

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

python如何打印菱形
软件左侧有相应的功能按钮,点击按钮,即可在画布上绘制,绘制好之后,可以连接打印机进行打印。

JAVA的for循环打印菱形公式是什么?
打印菱形其实很简单,记得高中数学的公式么 Sn =a1+(n-1)*d 打印菱形一般分成两部分,第一部分是打印正三角(一个空白三角+星星正三角),然后是倒三角(空白三角+星星到三角)每个三角形分别用两个for循环嵌套实现 例如:for (int i = 1; i < 4; i++) { for (int j = 1; j <= 1...

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

C语言输出一个菱形图案(有程序)
菱形,就是如下所示的图形,总行数与总列数相等:写一个程序,根据用户输入的总行数,打印出菱形。这个题目主要是找出规律,考察读者的逻辑思维。你可以从第一行开始,遍历所有的列,也可以从第一列开始,遍历所有的行。下面的程序从第一行开始,遍历所有的列。设菱形的总行数为line,总列数为column,...

如何使用python打印数字菱形?
in range(1,(length*2)):print(" "*abs(length-i),end = "")numout(length-abs(i-length))while True:length = None 检测输入值是否为数值类型 try:length = int(input("请输入正整数:"))except:print("错误,",end = "")if type(length) == int:break 输出菱形 diamond(length)...

c语言输出空心菱形
1、首先,输入预处理指令#include <stdio.h>与函数原型void print(int n)。其中,n表示行数。2、然后,对输入的n进行提前判断,若小于0或为偶数,则结束打印。3、接着对上半个菱形进行输出(包括最长的行)。使用两层循环进行输出,分别控制行数与行内的位置。4、接着对下半个菱形进行输出(包括...

C语言:输入一个正整数n,打印一个高为 n 的菱形图案
include <stdio.h>#include <string.h>#include <malloc.h>char ** draw(int n);\/\/生成菱形图案的二维数组void jt(char *p1,char *p2);\/\/地址p1到p2的字符数组(奇数个),从两头向中间交替赋值('*'和空格交替)int main(){ int n,i; char **strs; while(1) { pri...

绛县17285278160: c++怎么打印出一个菱形? -
皮朋注射: #include void main() { int i,j,x,y,k,h,num; char change; for(;;) { printf("请依次输入菱形的行数、右移距离.注意行数一般为奇数,偶数自动加一行:\n"); scanf("%d%d",&num,&h); printf("是否为空心y or n:\t"); fflush(stdin); scanf("%c",&change); if(num+h>79||num

绛县17285278160: 如何用c++打印菱形 -
皮朋注射: # include "iostream" using namespace std; int main() { int n,i,j; scanf("%d",&n); for(i=0;i<n;i++) { j=n-i-1; while(j--)putchar(' '); for(j=0;j<2*i+1;j++)putchar('*'); puts(""); } for(i=n-2;i>=0;i--) { j=n-i-1; while(j--)putchar(' '); for(j=0;j<2*i+1;j++)putchar('*'); puts(""); } return 0; }

绛县17285278160: 打印菱形 C++ -
皮朋注射: 输入你需要的菱形的高度n,输出相应程序:#include using namespace std; int main() {int n,k,i,j;cout cin>>n;for(k=1;k {for(i=0;i cout for(j=1;j cout for(j=j-2;j>0;j--)cout cout }for(k=k-2;k>0;k--){for(i=0;i cout for(j=1;j cout for(j=j-2;j>0;j--)cout cout }return 0; }

绛县17285278160: c++打印菱形 -
皮朋注射: 就是打印一个7行的菱形 i代表行数,j用来打印每行的*,前面那个for循环打印前4行,每行的*是增加的 后面标看不懂的那个for循环是打印后3行,每行的*是减少的.

绛县17285278160: 用c++打印出各种菱形 -
皮朋注射: #include<iostream> #include<iomanip> using namespace std; int main(){ for(int i=0;i<4;i ){ cout<<setw(3-i); for(int j=0;j<2*i 1;j ) cout<<'*'; cout<<endl; } return 0; }

绛县17285278160: 用C++输出菱形,高手赐教,谢谢 -
皮朋注射: #include void main() { int a=1; int i=3,j=-1,t_i,t_j; for (;a{ if (a{ for (i--,t_i=i;t_i>0;t_i--) coutfor (j+=2,t_j=j;t_j>0;t_j--) coutcout} else { for (i++,t_i=i;t_i>0;t_i--) coutfor (j-=2,t_j=j;t_j>0;t_j--) coutcout} } } 我用的VC++编译器没问题. 修改加过空格了,#include ...

绛县17285278160: 怎么用c++输出一个菱形 -
皮朋注射: 我调试过了,你试试看. #include<iostream> using namespace std;void trg1(unsigned int); //正三角(上半个菱形) void re_trg1(unsigned int); //反三角(下半个菱形)int main() {unsigned int k;cout<<"请输入半个菱形行数:"<<endl;...

绛县17285278160: 怎么用C++打出横的菱形
皮朋注射: //这是打印边长为5的,如果要边长7的,只要把N换成7就行了 #include<stdio.h> #define N 7 void main() { int min,max; for(int i=1;i<=2*N-1;i++) { if(i<=N) min=N+1-i; else min=i-N+1; max=2*N-min; for(int j=1;j<min;j++) printf(" "); for(int j=min;j<=max;j++) printf("*"); printf("\n"); } }

绛县17285278160: VC++ for循环 打印一个菱形图形,已有例子!不过我看不懂,请高手详细说明一下 ,谢谢了!虽然 -
皮朋注射: 打印菱形图形其实就是打印一个正三角形和一个对应的倒三角形,但是要注意它们的位置关系.你的这个程序是要打印这样的图形 * *** ************ ***** *** * 程序是将整个图形分成了两部分用循环嵌套打印输出的,即第一部分先输出下面的正三角...

绛县17285278160: 如何用C++输出一个菱形 -
皮朋注射: 说说思路吧,定义两个函数,一个打印* 一个打印空格,利用for循环合理调用它们

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网