c语言设计长整数运算数据结构,数据结构 长数的代数运算(1) 设计数据结构完成长整数的表示和存储,并编写算法来实现两长整数的加、减、乘、除等基本代数运算.(2) 课程设计目的能够应用线性数据结构解决实...

7d14a2b81882cfe4494b096a84150b2a.png 优质解答

参考资料:

Dim a(),b(),c() As Byte '定义输入和输出数组

Sub Main()

ts = "整数乘法"

xx = InputBox("请输入被乘数:",ts)

If xx = "" Then End

yy = InputBox("请输入乘数",ts)

If yy = "" Then End

a1 = Len(xx) '取xx的位数

b1 = Len(yy) '取yy的位数

c1 = a1 + b1 '确定结果的最大位数

ReDim a(a1),b(b1),c(c1) '重定义数组

For i = 1 To a

a(i) = Mid(xx,a1 - i + 1,1) '给数组a的每一位赋值

If Not IsNumeric(a(i)) Then '检查输入的合法性

MsgBox "被乘数输入错误",,ts

End

End If

Next i

For i = 1 To b1

b(i) = Mid(yy,b1 - i + 1,1) '给数组b的每一位赋值

If Not IsNumeric(b(i)) Then '检查输入的合法性

MsgBox "乘数输入错误",,ts

End

End If

Next i

For i = 1 To c1 '结果数组c初始化

c(i) = 0

Next i

For i = 1 To b1 '取b中的每一位

For j = 1 To a1 '取a中的每一位

c(j + i - 1) = c(j + i - 1) + b(i) * a(j) '相乘结果累加到c中的相应位

zz = c(j + i - 1)

k = 0

Do While zz >= 10 'c中的每一位进位检查

c(j + i + k - 1) = zz Mod 10 '本位处理

c(j + i + k) = c(j + i + k) + zz \ 10 '进位处理

zz = c(j + i + k)

k = k + 1

Loop

Next j

Next i

zz = ""

For k = c1 To 1 Step -1

If c(k) 0 Then Exit For '去掉结果中的前导0

Next k

k = IIf(k < 1,1,k)

For i = k To 1 Step -1

zz = zz + Trim(Str(c(i)))

Next i

zz = xx + " X " + yy + " = " + zz

ts = "计算结果:" + Str(a1) + "位 X " + Str(b1) + "位 结果为" + Str(k) + "位"

MsgBox zz,,ts '算式和结果输出

End

End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值