想先问一下,图案前面是有几个空格
下面程序是显示:
不知道是不是想要的结果:)
data segment
disp db "$"
disp1 db 0ah,0dh,'$'
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
mov ax, data
mov ds, ax
mov es, ax
mov cx,1
jxad:
inc cx
push cx
dec cx
jx:
lea dx, disp
mov ah, 9
int 21h
loop jx
lea dx,disp1
mov ah,9
int 21h
pop cx
cmp cx,5
jne jxad
mov ax, 4c00h ; exit to operating system
int 21h
ends
end start
下面这个可能可以吧很简单:)
(3个空格)
(2个空格)
(1个空格)
(没有空格)
data segment
disp db " $"
disp1 db 0ah,0dh," $"
disp2 db 0ah,0dh," $"
disp3 db 0ah,0dh,"$"
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
mov ax, data
mov ds, ax
mov es, ax
lea dx, disp
mov ah, 9
int 21h
lea dx,disp1
int 21h
lea dx,disp2
int 21h
lea dx,disp3
int 21h
mov ax, 4c00h ; exit to operating system
int 21h
ends
end start
1)分n行输出(i赋初值为0):
2)第i行开头先输出n-i个空格(首行为第0行)
3)接着输出 2i+1个号,然后换行
4)i = i + 1;
5)若 i < n,则转步骤2),否则算法结束。
正好前天晚上我写了一个,不过是用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"); //每一行末进行换行
}//输出下半部分号
}
}
直接7个printf语句完事啊,又没有其他特殊要求。。。。
printf(“12个空格2和星号”);
printf(“10个空格4个型号”);
printf(“8个空格6个星号”);
…………
用c语言当然很简单,printf(" ");
用java是这样,systemoutprintln(" ");
#include "stdioh"
int main()
{
int i,j;
for(i=0;i<=2;i++)
{
for(j=0;j<=2-i;j++)
printf(" ");
for(j=0;j<=2i;j++)
printf("");
printf("\n");
}
return 0;
}
是像这样不
____
___
__
以上就是关于急求:用汇编语言编写程序能打印出如下图案:全部的内容,包括:急求:用汇编语言编写程序能打印出如下图案:、C语言的,编写程序实现输入任意行数n,显示输出菱形*图案的算法分析、编写程序,在屏幕上显示边长为n的菱形,如图(n=3):等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)