【发布时间】:2020-05-06 15:51:14
【问题描述】:
我得到一个提示,可以通过标准乘法方法(使用 2d 数组)将它们相乘。但是谁能告诉我它是怎么做的?
到目前为止,这是我的代码,我不知道如何处理进位。我花了几个小时,最近才开始写代码。
int main()
{
int n, m, i, j;
printf("Enter multiplicand(n) size: ");
scanf("%d", &n);
printf("Enter multiplier(m) size: ");
scanf("%d", &m);
int a[n], b[m];
printf("Enter multiplicands: ");
for(i = 0; i<n; i++)
{
scanf("%d", &a[i]);
}
printf("Enter multipliers: ");
for(i = 0; i<m; i++)
{
scanf("%d", &b[i]);
}
int c[m][n+m];
int k = 0 , l = m+n-1 , p = 2;
for(i = 0; i<m; i++)
{
for(j = 0; j<m+n; j++)
{
c[i][j] = 0;
}
}
for(i = m-1; i>=0; i--)
{
for(j = n-1; j>=0; j--)
{
if(a[j]*b[i] < 10)
{
c[k][l] = a[j]*b[i] + carry;
l--;
}
else
{
carry = a[j]*b[i]%10;
c[k][l] = carry;
}
}
l = m+n-p;
p++;
k++;
}
for(i = 0; i<m; i++)
{
for(j = 0; j<m+n; j++)
{
printf("%d ", c[i][j]);
}
printf("\n");
}
}
【问题讨论】:
-
想象一下您将如何用铅笔和纸手工完成。现在在代码中执行此操作。
-
抱歉,我试过了,但不知道如何编码。
-
一般来说,您的问题应该集中在您的代码中的特定问题上。不幸的是,您还没有发布您的代码。对于此类问题,建议发布 minimal reproducible example 显示您尝试过的内容以及为什么它没有按照您的意愿/预期进行
-
我投票结束这个问题,因为它表明 OP 没有为解决问题付出任何努力。
标签: c arrays multidimensional-array product multiplication