在C程序中将两个数组表示的两个数字相加

数组表示的数字以这样的形式存储:该数字的每个数字都由数组的元素表示。例如,

Number 234 in array is {2,3,4}.

要添加这些数字,我们首先将数字的最低有效位相加,如果总和大于10,则传播进位。此后,我们将使用相同的步骤查找数组的下一个连续数字并求和。

让我们以添加两个数字为例-

a = {2,9, 6}

b = {6, 3, 8}

Output: 934

说明-我们将添加数字的最低有效位,即6 + 8 = 14将传播一个进位,然后对于相同的9 + 3 + 1 = 13将再次传播该进位。下一个总和将为2 + 6 + 1 =9。这将使总和= 934。

算法

为了找到存储为数组的数字总和。我们将首先检查是否有任何数字具有更多的数字。如果是,那么我们将找到总和直到较小数字的位数,然后去寻找较大数字的加法位数。

另外,我们将检查一个进位编号,该进位编号将跟踪总和中可能出现并需要转发的进位,最初它是零,并且在每次求和迭代之前都为零。我们将一一找到数字的总和,并将其存储到数组中,然后打印出来。

示例

#include <iostream>

using namespace std;

int Sum(int a[], int b[], int n, int m){

   int sum[n];

   int i = n - 1, j = m - 1, k = n - 1;

   int c = 0, s = 0;

   while (j >= 0) {

      s = a[i] + b[j] + c;

      sum[k] = (s % 10);

      c = s / 10;

      k--;

      i--;

      j--;

   }

   while (i >= 0) {

      s = a[i] + c;

      sum[k] = (s % 10);

      c = s / 10;

      i--;

      k--;

   }

   for (int i = 0; i <= n-1; i++) {

      cout<<sum[i];

   }

}

int main(){

   int a[] = { 5, 6, 9 };

   int b[] = { 3, 8 };

   int n = sizeof(a) / sizeof(a[0]);

   int m = sizeof(b) / sizeof(b[0]);

   cout<<"The sum is ";

   if (n >= m)

      Sum(a, b, n, m);

   else

      Sum(b, a, m, n);

   return 0;

}

输出结果

The sum is 607

以上是 在C程序中将两个数组表示的两个数字相加 的全部内容, 来源链接: utcz.com/z/334904.html

回到顶部