| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 703 人关注过本帖
标题:我自己写的高精度加法,哪里错了?
只看楼主 加入收藏
hmx0979
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-5-4
收藏
 问题点数:0 回复次数:3 
我自己写的高精度加法,哪里错了?
#include<stdio.h>
#include<string.h>
int add(char a[100],char b[100],char c[200],int j)//高精度预算//
{ int k,i;
for(k=99;k>=j;k--)
{c[200-100+k]=a[k]+b[k];
if(c[200-100+k]>=10)
c[200-100+k-1]+=c[200-100+k-1];
c[200-100+k-1]=c[200-100+k-1]-10;
}
i=strlen(c);
for(k=i;k<200;k++)
printf("%c",&a[k]); }
main()
{char a[100],b[100],c[200];
int i,k,l,u,j;
for(i=0;i<100;i++)
{a[i]=0;
b[i]=0;
} //数组初始化//
for(i=0;i<200;i++)
{c[i]=0;} //数组初始化//
gets(a);
gets(b);
i=strlen(a);
k=strlen(b);
for(j=0;j<=i;j++)
a[100-j]=a[i-j];//将数组里的数,移动到最后
for(j=0;j<=k;j++)
b[100-j]=b[k-j];
if (i>j) j=i;
add(a,b,c,j);

}
哪里错了?
搜索更多相关主题的帖子: 加法 高精度 include int string 
2007-01-27 00:15
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 

我把你的精确了一下.
#include<stdio.h>
#include<string.h>
int add(char a[100],char b[100],char c[200],int j)//高精度预算//
{ int k,i;
for(k=99;k>=j;k--)
{c[200-100+k]=a[k]+b[k];
if(c[200-100+k]>=10)
c[200-100+k-1]+=c[200-100+k-1];
c[200-100+k-1]=c[200-100+k-1]-10;
}
i=strlen(c);
for(k=i;k<200;k++)
printf("%c",&a[k]); }
main()
{char a[100],b[100],c[200];
int i,k,l,u,j;
for(i=0;i<100;i++)
{a[i]=0;
b[i]=0;
} //数组初始化//
for(i=0;i<200;i++)
{c[i]=0;} //数组初始化//
gets(a);
gets(b);
i=strlen(a);
k=strlen(b);
for(j=0;j<=i;j++)
a[100-j]=a[i-j];//将数组里的数,移动到最后
for(j=0;j<=k;j++)
b[100-j]=b[k-j];
if (i>j) j=i;
add(a,b,c,j);

}
不过,还是没有弄出来.
if (i>j) j=i;
其中的J是多少.好像没有值.
这种算法我也想知道,做出来了就告诉我呀.呵呵~~~~~~~~
顶~~~~


~~我的明天我知道~~
2007-01-27 11:37
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 

发错了.
#include<stdio.h>
#include<string.h>
#include<memory.h>
void add(char a[100],char b[100],char c[200],int j)//高精度预算//
{
int k,i;
for(k=99;k>=j;k--)
{
c[200-100+k]=a[k]+b[k];
if(c[200-100+k]>=10)
{
c[200-100+k-1]+=c[200-100+k-1];
c[200-100+k-1]=c[200-100+k-1]-10;
}
}
i=strlen(c);
for(k=i;k<200;k++)
printf("%c",a[k]);
}
void main(void)
{
char a[100],b[100],c[200];
int i,k,j;
memset(a,0,100*sizeof(char));
memset(b,0,100*sizeof(char));
memset(c,0,200*sizeof(char));
gets(a);
gets(b);
i=strlen(a);
k=strlen(b);
for(j=0;j<i;j++)
a[100-j]=a[i-j];//将数组里的数,移动到最后
for(j=0;j<k;j++)
b[100-j]=b[k-j];
if (i>j) j=i;
add(a,b,c,j);

}


~~我的明天我知道~~
2007-01-27 11:38
hmx0979
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-5-4
收藏
得分:0 

谢谢你

2007-01-28 07:39
快速回复:我自己写的高精度加法,哪里错了?
数据加载中...
 
   



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

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