最通用的解决方案,可以选择打印任意多行的菱形
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer
Do
k = InputBox("选择打印行数(必须为奇数)", , 9)
Loop While k Mod 2 = 0
Cls
For i = -k \ 2 To k \ 2
Print Tab(Abs(i) + 1);
For j = 1 To k - 2 Abs(i)
Print "";
Next j
Next i
End Sub
Dim n%, st$ 'st为控制所显示字符或数字变量
n = InputBox("请输入数字菱形行数,必须为奇数", "数字菱形")
m = (n + 1) / 2
For i = 1 To m
st = Chr(Asc(i))
Print Tab(m + 1 - i); String(2 i - 1, st),
Next
For i = m + 1 To n
st = Chr(Asc(i))
Print Tab(i - m + 1); String(2 (n - i) + 1, st),
Next
n = InputBox("请输入字符行数,必须为奇数", "字符菱形")
m = (n + 1) / 2
For i = 1 To m
If i Mod 2 = 0 Then st = "B" Else: st = "A"
Print Tab(m + 1 - i); String(2 i - 1, st),
Next
For i = m + 1 To n
If i Mod 2 = 0 Then st = "B" Else: st = "A"
Print Tab(i - m + 1); String(2 (n - i) + 1, st),
Next
你把原来输出的""改为" "(也就是printf的双引号里面加一空格)就行,另外,前导空格也变为两个就行
也就是说,把printf(" ");改为printf(" ");(这是一空格改两空格),把printf("");改为printf(" ");(也就是星号后面加空格)就行
附示例:
#include<stdioh>
void main()
{
int i,j,k;
for(i=1;i<=4;i++) //先打印上边的四行
{
for(j=1;j<=4-i;j++) //控制要打印的空格数量
printf(" ");
for(k=1;k<=2i-1;k++) //控制要打印的星号数
printf("");
printf("\n");
}
for(i=1;i<=3;i++)
{
for(j=1;j<=i;j++) //控制要打印的空格数
printf(" ");
for(k=1;k<=7-2i;k++) //控制要打印的星号数
printf("");
printf("\n");
}
}
扩展资料:
for循环
for循环结构是c语言中最具有特色的循环语句,使用最为灵活方便,它的一般形式为:
for(表达式1;表达式2;表达式3)循环体语句 。(其中;不能省略)
表达式
表达式1为初值表达式,用于在循环开始前为循环变量赋初值。
表达式2是循环控制逻辑表达式,它控制循环执行的条件,决定循环的次数。
表达式3为循环控制变量修改表达式,它使for循环趋向结束。
循环体语句是在循环控制条件成立的情况下被反复执行的语句。
但是在整个for循环过程中,表达式1只计算一次,表达式2和表达式3则可能计算多次,也可能一次也不计算。循环体可能多次执行,也可能一次都不执行。
先执行表达式2,然后执行循环结构,最后表达式3,一直这样循环下去。
for循环语句是c语言种功能最为强大的语句,甚至在一定程度上可以代替其他的循环语句。
do
do循环结构,do 1 while⑵;的执行顺序是1->2->1循环,2为循环条件。
while
while循环结构,while(1) 2; 的执行顺序是1->2->1循环,1为循环条件
以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。
参考资料:
#include <stdioh>
int main(void){
int i,j,k;
//上半空心菱形
for(i=1;i<=10;i++){ //控制行数 10行
for(k=10;k>i;k--){ //第一行 9空格1 i=2 8空格 2
printf(" ");
}
//当i=1时 由第25行代码输出
if(i == 1){}
else{
printf(" ");
}
//空心空格个数打印 0 2 4 6 16个
for(j=1;j<2i-2;j++){
printf(" ");
}
printf(" ");
printf("\n");
}
//下空心菱形
for(i=1;i<=9;i++){ //去掉最长行 只有9行
//空格增多 1 2 39
for(k=1;k<=i;k++){
printf(" ");
}
//最后一行号由代码43行执行
if(i == 9){}
else{
printf(" ");
}
//空心空格个数打印 15 13 1 注意空格是15开始 1结束
for(j=1;j<=17-2i;j++){ //i=9时候 打印0个空格
printf(" ");
}
printf(" "); //打印每行后出现的
printf("\n"); //换行
}
}
直接算出节点坐标就比较好编了。 ,我数学没学好要是我我就用G68坐标旋转了省了算坐标
G68 X0 Y0 R45
G00 X-29 Y29
Z2
G01 Z0 F100
G41 X-24 Y19 D01 F350
X19 ,R12
Y-19 ,R12
X-19 ,R12
Y19 ,R12
X-7
G03 X5 Y29 R12
G00 Z100
G40 X0 Y0
G69
正好前天晚上我写了一个,不过是用Java写的,相信你一定可以把它转换成其它语言。可以使用C++,把输出菱形的函数封装到Outputlingxing类中;也可以使用C语言,你把Outputlingxing类中的draw(int N)函数直接该写到main函数中即可。其实语言不是问题,你能看懂算法就行了!
import javautilScanner;
public class lingxing {
public static void main(String[] args) {
Systemoutprintln("菱形绘制程序");
Systemoutprintln("为了使绘制效果美观,请输入不小于3的奇数!");
Scanner theN=new Scanner(Systemin);
Outputlingxing xingxing=new Outputlingxing();
while(true)
{
Systemoutprint("请输入要绘制的菱形的行数(退出程序请输入0):");
int n=theNnextInt();
if(theN)
if(0==n) { Systemoutprintln("程序正常退出!");return;}
if(n<=2) { Systemoutprintln("你输入的数字太小!");continue;}
else xingxingdraw(n);
}
}
}
/ 类名:Outputlingxing
功能:输出一个由组成的菱形图案
说明:该类实现输出的是 draw(int N) 函数,形参N为需要绘制的菱形的行数
/
class Outputlingxing{
private int i, j, k; //i用来控制行,j用来控制号前的空白数,k用来控制号之间的空白数
private int m; //下半部分行数
private int n; //上半部分行数
public void draw(int N){
m=(N-1)/2;
n=m+1;
for (i = 1; i <= n; i++) {
for (j = 1; j <= n - i; j++) {
Systemoutprint(" ");
}//输出号前的空白
if(i==1)//如果是第一行,则直接输出一个号并换行
{
Systemoutprint("");
Systemoutprint("\n");
}else//否则
{
Systemoutprint(""); //输出该行第一个号
for(k=1;k<=2i-3;k++) //输出2i-3个空白
Systemoutprint(" ");
Systemoutprint(""); //输出该行最后一个号
Systemoutprint("\n"); //每一行末换行
}
}//输出上半部分号
for (i = 1; i <= m; i++) {
for (j = 1; j <= i; j++) {
Systemoutprint(" "); //输出号前的空白
}
if(i!=m) //如果不是最后一行
{
Systemoutprint(""); //输出该行第一个号
for(k=1;k<=(N-2-2i);k++) //输出N-2-2i个空白
Systemoutprint(" ");
Systemoutprint(""); //输出该行第二个号
}else //否则就是最后一行,那么就只输出一个号
Systemoutprint("");
Systemoutprint("\n"); //每一行末进行换行
}//输出下半部分号
}
}
以上就是关于vb程序编写菱形图案全部的内容,包括:vb程序编写菱形图案、VB编程,数字菱形以及字符菱形、我要用for循环编写c语言程序中的菱形,但是星号之间也要有空格怎么弄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)