| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2896 人关注过本帖
标题:大数运算
只看楼主 加入收藏
爱睡觉的猫
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2017-4-19
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:14 
大数运算
要求输入两个相对较大的十进制整数,完成加减运算
 要求:
1. 输入的整数位数不低于10位;
2. 输入的整数可正可负;
3. 能通过菜单运行程序。
上次那个帖子给的代码都太难了,只要是没思路
搜索更多相关主题的帖子: 运行程序 十进制 
2017-05-31 15:40
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:7 
https://bbs.bccn.net/thread-475865-1-1.html
高精度加法可以看看这个~这个相对来说简单一点~
至于减法~可以使用论坛搜索功能~里面总会有找到合适你现在水平的帖子吧~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-31 15:52
爱睡觉的猫
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2017-4-19
收藏
得分:0 
回复 2楼 九转星河
#include<stdio.h>
#include <string.h>
#define N 15
int jiafa(char a[],char b[],char c[]);
int main()
{
    char a[N]={},b[N]={},c[N]={};
    //int  d[N]={},e[N]={},f[N]={};
    printf("please inter a[]: ");
    gets(a);
    printf("please inter b[]: ");
    gets(b);
    jiafa(a,b,c);
    printf("%d",&c);
    return 0;
}
int jiafa(char a[],char b[],char c[])
{
    int i,lena,lenb;
    int d[N];int e[N];int f[N];
    lena=strlen(a);
    for(i=0;i<lena;i++)
    {
        d[N-1-i]=a[N-1-i]-'0';
    }
    lenb=strlen(b);
    for(i=0;i<lenb;i++)
    {
        e[N-i-1]=b[N-i-1]-'0';
    }
    for(i=0;i<N;i++)
    {
        f[N-i-1]=d[N-i-1]+e[N-i-1];
        for(i=0;i<N;i++)
        {
            if(f[N-i-1]>=10)
            {
                f[N-i-1]=f[N-i-1]%10;
                f[N-i-2]+=1;
            }
        }
    }
}
能不能帮我看看哪里错的,算出来结果不对。。。我不知道哪里错
2017-06-01 20:54
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 3楼 爱睡觉的猫
好像没有考虑两个数组长度不等的情况~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-01 21:15
爱睡觉的猫
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2017-4-19
收藏
得分:0 
回复 4楼 九转星河
那要怎么去弄呀
2017-06-02 08:23
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 5楼 爱睡觉的猫
这个我现在没啥时间~一时也弄不出来~还是看看有没有其他人能帮你实现吧~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-02 08:57
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
不过我可以给个实现思路你~
当长度较短一组到达头部就直接结束循环然后再把较长的数字直接补上~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-02 09:04
爱睡觉的猫
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2017-4-19
收藏
得分:0 
回复 7楼 九转星河
好的,我去研究研究
2017-06-02 09:07
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:7 
要考虑特殊数
比如
999+1
任意数+0
0+0

减法要考虑谁大谁小 大的放前面
减法也要考虑特殊数 比如 123-123  0-0  0-1000

测试时  特殊数能通过 其他数一般没问题的

DO IT YOURSELF !
2017-06-02 09:15
寒墨轩
Rank: 2
等 级:论坛游民
帖 子:35
专家分:63
注 册:2017-5-15
收藏
得分:7 
那个菜单是怎么实现的
2017-06-02 15:26
快速回复:大数运算
数据加载中...
 
   



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

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