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");
}
}
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;
}
用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...
皮朋注射: #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循环合理调用它们