c语言程序设计:大整数的加减法

c语言程序设计:大整数的加减法,第1张

用rand()产生随机数,rand()会产生从0到一个很大的数,我记不清了,反正很大。如果想出现100以内的,就用rand()%100。你可以定义三个int型整数,两个表示加或者减的对象,另一个标示加或者减,因为只要出现两种情况之一,所以可以用rand()%2,这样只会有0,1两种情况来标示加或者减。下面的就很容易了inta,b,i,cfor(i=0i<10i++){a=rand()%100b=rand()%100c=rand()%2if(c==0)//标示加法{printf("%d+%d=%d\n",a,b,a+b)}else{printf("%d-%d=%d\n",a,b,a-b)}}大致就这样,希望给你点帮助

我下面的程序在TURBO PASCAL上调试通过,我写了一个过程来完成减法运算并输出结果,我没参加过什么竞赛,主程序你自己按照你们老师的要求进行输入、输出的设置:

procedure big_sub(a:stringb:string)

var i,j,k,n:integer

begin

i:=length(a)

j:=length(b)

while (i>=1)and(j>=1) do

begin

if a[i]>=b[j] then k:=0 else k:=10

a[i]:=chr(ord('0')+ord(a[i])+k-ord(b[j]))

n:=i-1

while k>0 do

begin

if a[n]>'0' then k:=0 else k:=10

a[n]:=chr(ord(a[n])+k-1)

n:=n-1

end

i:=i-1

j:=j-1

end

writeln(a)

end

var a,b:string

begin

a:='9999999999999999999999999999999999999'{readln(a)}

b:='9999999999999'{readln(b)}

big_sub(a,b)

a:='1000000000000000000000000000000000000'{readln(a)}

b:='123' {readln(b)}

big_sub(a,b)

end.

程序运行结果是:

9999999999999999999999990000000000000

0999999999999999999999999999999999877

如果要求取消输出结果最左边的0,我相信你也是能做到的。


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

原文地址: http://outofmemory.cn/yw/11811782.html

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

发表评论

登录后才能评论

评论列表(0条)

保存