有谁能告诉我如何在C中乘以两个数字数组?数字数组基本上是从包含数字的两个字符串派生的。例如:123456和132465。
编辑:我有两个字符串S1 = "123456"
和S2="132546"
。然后我将这两个字符串转换为整数数组,即int IS1 [6]和IS2 [6],以便
IS1[1] = 1, IS1[2] = 2......
和
IS2[1] = 1, IS2[2] = 3.....
现在我必须多次使用这两个阵列。请帮忙。
答案 0 :(得分:5)
目前尚不清楚你想要成倍增加。如果您需要在char[]
中将两个空终止字符串相乘,则可以使用int
将它们转换为atoi
值:
int result = atoi(str1) * atoi(str2);
答案 1 :(得分:3)
如果你想使用纸笔算术并且不知道如何做到这一点,这里是illustration。
答案 2 :(得分:1)
我只是编写一个简单的程序,使用算法长乘法将存储在2行中的两个数相乘。它可以乘以两个数字彼此超过10亿的数字
示例:
23958233
5830 ×
------------
00000000 ( = 23,958,233 × 0)
71874699 ( = 23,958,233 × 30)
191665864 ( = 23,958,233 × 800)
119791165 ( = 23,958,233 × 5,000)
源代码:
请查看并发表评论 http://code.google.com/p/juniormultiply/source/browse/#svn/trunk/src
答案 3 :(得分:0)
答案 4 :(得分:0)
好吧,如果你想生成一个包含乘法的数组,你可以使用:
int *a, *b, *c; // pointers to arrays of size n
for (unsigned i=0;i<n;++i)
c[i] = a[i] * b[i];
如果你想要内在的产品,你可以这样做:
int *a, *b; // pointers to arrays of size n
int res = 0;
for (unsigned i=0;i<n;++i)
res += a[i] * b[i];
如果像以前的答案所说的那样,你想要的是将两个数组视为数字,你可以使用上面提到的atoi()函数。
答案 5 :(得分:-1)
如果是真实项目,请进行转换。
如果这是算法练习,请根据铅笔和纸张方法进行多重循环。