2 个数字的除法并将结果保存在数组中

Division of 2 numbers and saving the result in array

我一直在写一些代码,但看起来我的逻辑不对。 我正在尝试制作一个程序,将数字 (a) 分成相等的部分 (b)(如果可能的话),然后将这些结果连同初始的除数一起保存到一个数组中。像这样:

  1. 20/2=10 [10][10]
  2. 20/3=6 [8][6][6]

所以这是我的代码:

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]);
}

看起来第一种情况有效,但第二种情况无效,我不知道为什么。有什么想法吗?

在行

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

你的第一个数组元素是整数除法加上余数。对于任何有余数的除法,您的程序将无法运行。它而是将整数除法存储在除第一个元素之外的所有元素中,并与余数相加。

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