划分2个数字并将结果保存在数组中

时间:2016-05-13 18:57:27

标签: c arrays division

我一直在研究一些代码,但看起来我的逻辑不正确。 我正在尝试创建一个程序,将数字(a)分成相等的部分(b)(如果可能的话),然后将这些结果以及初始分割数保存到数组中。像这样:

  1. 20/2 = 10 [10] [10]
  2. 20/3 = 6 [8] [6] [6]
  3. 所以我这是我的代码:

    for (i=0; i<b; i++)
    {
      if (a%b)
      {
        array[i]=a/b;
      }
      else
      {
        array[0]=(a/b)+(a%b);
        array[i+1]=a/b;
      }                 
      printf("\n\nIn range %d there are %d\n\n",i,Sub_arr_len[i]);
    }
    

    看起来第一种情况正在发挥作用,但第二种情况并非如此,我不知道为什么。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在第

array[0]=(a/b)+(a%b);

您的第一个数组元素是整数除法,加上余数。对于任何具有余数的部门,您的计划将无法运作。它将整数除法存储在除第一个之外的所有元素中,其中它与余数相加。

为了解决这个问题,我会将大部分代码写入if语句,测试模数是否为0。我假设你不想保存任何数组,如果你的除法不会产生相等的部分,所以你应该只做你正在做的事情a%b = 0