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)}}大致就这样,希望给你点帮助

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

void 纯轿RightMoving(char *s,int n)

{

char *p=s,*q

while(*p++!='\0')

for(q=pq!=sq--)

*(q-1+n) = *(q-1)

for(int i=0i<n++i)s[i] = '0'

}

int LargerIntegerAdd(char 游租*result,char *n1,char *n2)

{

int i,t=0,num

num = strlen(n1)>strlen(n2)?strlen(n1):strlen(n2)

result[num]='\0'

for(i=num-1i>-1i--)

{

result[i] = (n1[i] + n2[i] + t - '0')

t=0

if(result[i]>'9')

{

t++

result[i] -= 10

}

}

return t

}

int main()

{

int i

char 做磨肆n1[200],n2[200],result[200]

gets(n1)

gets(n2)

printf("%s+%s=",n1,n2)

if(strlen(n1)>strlen(n2))

RightMoving(n2,strlen(n1)-strlen(n2))

if(strlen(n1)<strlen(n2))

RightMoving(n1,strlen(n2)-strlen(n1))

i = LargerIntegerAdd(result,n1,n2)

if(i>0)

printf("%d",i)

puts(result)

return 0

}

你刚提问就在敲……其中不小心多加了1搞的调试到现在,终于好了!


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

原文地址:https://54852.com/yw/8246313.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存