| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1051 人关注过本帖
标题:用数组表示的int数 乘法得出的结果怎么这么变态。。。。求高手指点菜鸟(第 ...
只看楼主 加入收藏
sd791002
Rank: 2
等 级:论坛游民
帖 子:88
专家分:87
注 册:2010-4-3
结帖率:85.71%
收藏
已结贴  问题点数:10 回复次数:7 
用数组表示的int数 乘法得出的结果怎么这么变态。。。。求高手指点菜鸟(第一次发帖)
#include <stdio.h>
#define MAX 10
void main()
{

    int a[MAX]={7},b[MAX]={7},c[2*MAX];
    int i,j,x,y,z,w;
        for(i=0;i<MAX;i++)
    {
        for(j=0;j<MAX;j++)
        {
            x=a[i]*b[j];
            y=x/10;
            z=x%10;
            w=i+j;
            c[w]=c[w]+z;                         //w=15.   i=5,j=10 or  i=10,j=5  or i=7,j=8.......
            c[w+1]=c[w+1]+y+c[w]/10;
            c[w]=c[w]%10;
        }
    }






    for(i=MAX-1;i>=0;i--)
    {   
        printf("%d",a[i]);
        
    }
    printf("\n");
        for(i=MAX-1;i>=0;i--)
    {   
        printf("%d",b[i]);
        
    }
    printf("\n");
        for(i=2*MAX-1;i>=0;i--)
    {   
        printf("%d",c[i]);
        
    }
    printf("\n");
}
搜索更多相关主题的帖子: int 乘法 点菜 发帖 
2010-04-06 20:11
sd791002
Rank: 2
等 级:论坛游民
帖 子:88
专家分:87
注 册:2010-4-3
收藏
得分:0 
a[]和b[]  随便输入一些数字  用于 测试

结果 最简单的7*7居然是个负数   我哭了
2010-04-06 20:41
ggvvcc
Rank: 3Rank: 3
来 自:山东临沂
等 级:论坛游侠
帖 子:50
专家分:119
注 册:2010-4-3
收藏
得分:0 
没看懂,你要实现什么?
2010-04-06 20:51
sd791002
Rank: 2
等 级:论坛游民
帖 子:88
专家分:87
注 册:2010-4-3
收藏
得分:0 
1024位的大数相乘   所以用数组来表示大数      然后  自己写大数的加减乘除法

乘法思路明显是对的嘛  但是结果总是出问题
2010-04-06 20:54
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
2010-04-06 21:02
sd791002
Rank: 2
等 级:论坛游民
帖 子:88
专家分:87
注 册:2010-4-3
收藏
得分:0 
回复 5楼 Devil_W
这个。。。贴子我看过  不过是用的C++写的啊   我不仅要大数的加减乘除 我还要做其他很多运算的  就想用标准C写出来  已经有思路了 但是具体实施的过程中出了问题  所以来请教
2010-04-06 21:06
zghnxzdcx
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:550
专家分:1176
注 册:2010-4-6
收藏
得分:10 
兄弟,你的数组c[]没有进行初始化,程序中只是对它进行了定义,而没有赋值,数组c[]中存在一组随机数,只要在定义时写成int a[MAX]={7},b[MAX]={7},c[2*MAX]={0}; 就正常了,C语言中,当对一个没有初始化的数组进行单个元素进行赋值时,在语句中对应没有值的数组元素会自动初始化为0,你的程序中,a[],b[]两个数组都进行了初始化赋值,所以输出的  a[],b[]都和你预想的一样,而c[]没有被初始化,运算结果,就不会和你预想的一样了。

你永远不可能战胜一个纯傻子,因为他会把你的智商拉到和他同一个水平,然后用他的丰富经验打败你。
2010-04-06 21:50
sd791002
Rank: 2
等 级:论坛游民
帖 子:88
专家分:87
注 册:2010-4-3
收藏
得分:0 
回复 7楼 zghnxzdcx
真心膜拜!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2010-04-06 22:07
快速回复:用数组表示的int数 乘法得出的结果怎么这么变态。。。。求高手指点菜鸟 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015961 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved