| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9659 人关注过本帖
标题:[紧急求助]如何实现一个二维数组的输入输出?
只看楼主 加入收藏
写在人生边上
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2007-11-8
收藏
 问题点数:0 回复次数:11 
[紧急求助]如何实现一个二维数组的输入输出?
如何实现一个二维数组的输入输出?这个问题已经困扰了我很久。


比如,要输出以下矩阵:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25

希望各位高手帮帮忙,我在此先谢过了!
搜索更多相关主题的帖子: 输出 输入 矩阵 
2007-11-09 09:36
写在人生边上
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2007-11-8
收藏
得分:0 
要用汇编语言写哟!
2007-11-09 09:37
爱以走远
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:7542
专家分:21
注 册:2007-3-16
收藏
得分:0 
Array db dup (5)
db dup (5)
db dup (5)
db dup (5)
db dup (5)


可以象上面那样定义一个缓冲区, 放数组, 在用中断输入输出 ,21H里的0xaH中断进行输入,输出用0x9H,
大概是这样的.

   好好活着,因为我们会死很久!!!
2007-11-09 11:07
写在人生边上
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2007-11-8
收藏
得分:0 

可不可以写点程序作为例子我看看呢?

我很菜的!

2007-11-09 11:18
写在人生边上
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2007-11-8
收藏
得分:0 
怎么从键盘输入数据存入数组中,再输出呢?
2007-11-09 11:25
zhoulikelvjj
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2007-4-10
收藏
得分:0 

data segment
array byte 25 dup (?)
count equ $-array
data ends
code segment 'code'
assume ds:data,cs:code

start:
mov ax,data
mov ds,ax

mov si,-1
mov cx,count

INP:inc si
mov ah,1
int 21h
mov array[si],al
cmp al,0dh
loopnz INP

cmp array[si],0dh
jnz A1
mov array[si],0

A1:mov cx,count
mov si,0
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
int 21h

OUTP:mov dl,array[si]
or dl,30h
mov ah,2
int 21h
inc si
mov ax,si
mov bl,5
div bl
cmp ah,0
jnz A2
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
int 21h
A2:loop OUTP

mov ah,4ch
int 21h

code ends
end start


2007-11-10 14:36
写在人生边上
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2007-11-8
收藏
得分:0 
你的程序好像不能实现:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
输入1到25个数都不可以。

不过还是谢谢你!
2007-11-10 20:30
zhoulikelvjj
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2007-4-10
收藏
得分:0 

data segment
array word 25 dup (?)
count equ 25
outnum byte 5 dup (?)
data ends
code segment 'code'
assume ds:data,cs:code

start:
mov ax,data
mov ds,ax

mov si,-2
mov cx,count

INP:inc si
inc si
call inputnum
loop INP

mov cx,count
mov si,0
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
int 21h

OUTP:call outputnum
mov dl,20h
mov ah,2
int 21h
inc si
inc si
mov ax,si
mov bl,10
div bl
cmp ah,0
jnz A2
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
int 21h
A2:loop OUTP

mov ah,4ch
int 21h

inputnum proc ;输入一个数的函数,以空格结束
push ax
push bx
push dx
push cx
AGN1:mov ah,1
int 21h
cmp al,' '
jz RET1
sub al,30h
mov ah,0
xchg bx,ax
mov cl,10
mul cl
xchg bx,ax
add bx,ax
jmp AGN1
RET1:mov array[si],bx
pop cx
pop dx
pop bx
pop ax
ret
inputnum endp

outputnum proc ;输出函数
push ax
push bx
push cx
push dx
push di
mov ax,array[si]
mov cx,5
mov di,0
AGN2:mov bl,10
div bl
mov dl,ah
or dl,30h
mov outnum[di],dl
inc di
mov ah,0
loop AGN2
mov cx,5
OUT1:dec di
mov dl,outnum[di]
mov ah,2
int 21h
loop OUT1
pop di
pop dx
pop cx
pop bx
pop ax
ret
outputnum endp

code ends
end start

现在可以接受0-65535的数了。但是输出时不足5位的地方会补0。。。。

2007-11-10 21:36
写在人生边上
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2007-11-8
收藏
得分:0 


这个程序怎样从键盘输入1到25个数据呢?数据间要空格吗?

运行时为什么一回车光标就回到了起始位置呢?还是不能达到目的呀!
2007-11-11 00:59
zhoulikelvjj
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2007-4-10
收藏
得分:0 

输入都以空格结束,不加空格可以一直输入。但会溢出!
连续输入25个数后第一个输入循环才会结束。如果中间加回车的话我也不知道啥结果。没试过。呵呵
输入1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
25后加一个空格

2007-11-11 13:42
快速回复:[紧急求助]如何实现一个二维数组的输入输出?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037579 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved