急求:用汇编语言编写程序能打印出如下图案:

急求:用汇编语言编写程序能打印出如下图案:,第1张

想先问一下,图案前面是有几个空格

下面程序是显示:

不知道是不是想要的结果:)

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):等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10123684.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存