gpt4 book ai didi

c - 数组相加、相减、相乘

转载 作者:行者123 更新时间:2023-11-30 21:43:39 28 4
gpt4 key购买 nike

我是C语言的初学者,我必须做一个函数来对两个数组进行加、减、乘,并将其放入另一个数组中。在add函数中如果发生溢出则必须返回false。在 sub 函数中,如果 n1 小于 n2,则必须返回 false。在乘法函数中,如果发生溢出则必须返回 false。我有以下基数,首先是 0 的完整数组,然后最小权重的数量位于索引 0 中。例如,如果我输入 234,则 BigInt 将是索引 79 0000...00234 索引 0

#define MaxDigits 80

typedef unsigned char byte;
typedef byte BigInt [MaxDigits];

这是我必须添加的:

   bool  addBigInt( const BigInt n1, const BigInt n2, BigInt res ){
int carry=0;
for(int i=0;i<80;++i){
if(n1[i]+n2[i]>9){
carry=res[i]%10;
}
res[i]=n1[i]+n2[i]+carry;
}

if((n1[79]+n2[79]>9) ||(n1[78]+n2[78]>10 && n1[79]+n2[79]>8) ){
return false;
}
else{
return true;
}
}

子一:

    bool  subBigInt(  const BigInt n1,  const BigInt n2, BigInt res ) {
for(int i=0;i<80;++i){
res[i]=n1[i]-n2[i];
}
for(int i=80;i>0;i--){
if(n1[i]-n2[i]<0){
return false;
}
}

return true;
}

我真的不知道如何使用 bool 值,如果你能帮助我,我将非常感激。谢谢你

最佳答案

对于添加,可能是这样的

bool addBigInt( const BigInt n1, const BigInt n2, BigInt res ) {
int i, sum, carry = 0;
for(i=0; i<MaxDigits; i++) {
sum = n1[i] + n2[i] + carry;
res[i] = sum % 10;
carry = sum / 10;
}
return carry == 0;
}

关于c - 数组相加、相减、相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37058424/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com