在多维数组中添加每个元素的数字

时间:2014-07-22 05:08:53

标签: c arrays multidimensional-array

我有一个二维数组。我试图在数组中添加每个元素的数字并找到总和。

例如:

考虑我的数组是:a[2][2] = { {15,11}, {13,21} }

现在,对于元素15,我需要添加1+5并将结果6放在同一位置。 对于元素11 1+1,将结果2置于同一位置。所有其他元素都一样。

以下是我的代码。

int main ()
{

   int a[3][2] = { {19,11}, {13,21}, {12,14}};
   int i, j;
   int digit1,digit2,sum1=0,sum2=0,rem1,rem2;

   for ( i = 0; i < 3; i++ )
   {

      for ( j = 0; j < 2; j++ )
      {
         digit1 = a[i];
         rem1 = digit1%10;
         sum1 = sum1 + rem1;
         digit1 = digit1/10;

         digit2 = a[j];
         rem2 = digit2%10;
         sum2 = sum2 + rem2;
         digit2 = digit2/10;

         printf("\nthe sum of i: ", sum1);
        printf("\nthe sum of j: ", sum2);

      }


   }
   return 0;
}

但是从上面的代码中我得不到总和。

我对此有点新意并被困在这里。这是EDITOR中的代码。

3 个答案:

答案 0 :(得分:2)

定义一个函数来计算整数的数字之和。

int getSumOfDigits(int n)
{
   int ret = 0;
   while ( n > 0 )
   {
      ret += (n%10);
      n /= 10;
   }
   return ret;
}

使用for循环中的函数。

for ( i = 0; i < 3; i++ )
{
   for ( j = 0; j < 2; j++ )
   {
      a[i][j] = getSumOfDigits(a[i][j]);
   }
}

答案 1 :(得分:1)

简单。执行以下操作 -

//Assuming the array is a[3][2]

for(int i=0;i<3;i++)
for(int j=0;j<2;j++)
{
  int sum = 0;
  while(a[i][j])
  {
   sum+=a[i][j]%10;
   a[i][j]/=10;
  }
   a[i][j]=sum;
}

答案 2 :(得分:0)

在for循环中放置此代码而不是代码,它将起作用

 for ( j = 0; j < 2; j++ )
  {
     sum1=0;
     while(a[i][j]){
     sum1=sum1+(a[i][j]%10);
     a[i][j]=a[i][j]/10;
     }
     a[i][j]=sum1;

     printf("\nthe sum of [%d][%d]: %d", i,j,sum1);
}