| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 774 人关注过本帖
标题:请求大家解疑 用指针实现大整数相加的函数,大整数为10进制,最多有15位。
取消只看楼主 加入收藏
jintom
Rank: 1
等 级:新手上路
帖 子:11
专家分:2
注 册:2010-11-19
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
请求大家解疑 用指针实现大整数相加的函数,大整数为10进制,最多有15位。
所谓大整数指的是位数很大的整数,如9999999999。  大整数相加的例子:5555555555+6666666666=12222222221


这是我编的,就是输不出结果  大家看看  什么地方不对  谢谢啊
# include<stdio.h>
main()
{
    char a[15],b[15];
    void fun(a,b);
    int i;
    gets(a);
    a[14]='\0';
    fflush(stdin);
    gets(b);
    b[14]='\0';
    fun(a,b);
    for(i=0;i<15&&b!='\0';i++)
        printf("%c",*(b+i));
}

void fun(char x[],char y[])
{
    char c[15]={'\0'},z[15]={'\0'};
    int i,j;
    for(i=14,j=0;i>0;i--)/*倒置x[]*/
    {
        if(x[i]!='\0')
        {
            z[j]=x[i];
            j++;
        }
    }
    for(i=14,j=0;i>0;i--)
    {
        if(y[i]!='\0')
        {
            x[j]=y[i];
            j++;
        }   
    }
    for(i=0;i<15&&(z[i]!='\0'||x[i]!='\0');i++)/*数组相加*/
    {
        c[i]=z[i]+x[i];
        if(c[i]>10)
        {
            c[i]=c[i]-10;
            z[i+1]=z[i+1]+1;
        }
    }
        if(z[i]=='0')
            for(;x[i]!='\0';i++)
                c[j++]=x[i];
        else if(x[i]=='0')
            for(;z[i]!='\0';i++)
                c[j++]=z[i];        
    for(i=14,j=0;i>0;i--)/*倒置得出数组*/
    {
        if(c[i]!='\0')
        {
            y[j]=c[i];
            j++;
        }   
    }
}
搜索更多相关主题的帖子: 整数 进制 指针 函数 解疑 
2010-12-07 23:03
jintom
Rank: 1
等 级:新手上路
帖 子:11
专家分:2
注 册:2010-11-19
收藏
得分:0 
求顶贴。。。
2010-12-09 11:47
快速回复:请求大家解疑 用指针实现大整数相加的函数,大整数为10进制,最多有1 ...
数据加载中...
 
   



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

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