乘以两个数字数组

任何人都可以告诉我如何在C中乘以两个数字数组? 数组数组基本上来自两个包含数字的字符串。 例如:123456和132465。

编辑:我有两个字符串, S1 = "123456"S2="132546" 。 然后我将这两个字符串转换为整数数组,即int IS1 [6]和IS2 [6]

 IS1[1] = 1, IS1[2] = 2...... 

 IS2[1] = 1, IS2[2] = 3..... 

现在我必须多了几个这两个阵容。 请帮忙。

目前尚不清楚你想要成倍增加。 如果需要在char[]中将两个空终止字符串相乘,可以使用atoi将它们转换为int值:

 int result = atoi(str1) * atoi(str2); 

如果你想使用纸笔算术,并且不知道如何做到这一点,这里就是一个例子 。

我只是编写一个简单的程序,使用算法长乘法将存储在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

如果您的数字足够小,请将它们解析为整数( atoi )。

如果它们太大而无法适应整数:

  • 使用像gmp这样的库

  • 或使用铅笔纸算法,但你将重新发明轮子。

好吧,如果你想生成一个包含乘法的数组,你可以使用:

 int *a, *b, *c; // pointers to arrays of size n for (unsigned i=0;i 

如果你想要内部产品,你可以这样做:

 int *a, *b; // pointers to arrays of size n int res = 0; for (unsigned i=0;i 

如果像以前的答案所说的那样,你想要的是将两个数组视为数字,你可以使用所提到的atoi()函数。

如果是真实项目,请进行转换。

如果这是算法练习,请根据铅笔和纸张方法进行多重循环。