永发信息网

C语言高精度加法

答案:2  悬赏:60  手机版
解决时间 2021-02-05 06:40
  • 提问者网友:你给我的爱
  • 2021-02-04 17:42
C语言高精度加法
最佳答案
  • 五星知识达人网友:神的生死簿
  • 2021-02-04 19:15
你输入的是字符哦!!应该把字符转为数字再运算,然后你那两个循环的转换有什么作用??
我随便帮改了下!!不过其他输入方面的错误和浮点数的考虑我没加上!!自己想想吧!!
#include
#include
#include

char a[500], b[500];
int c[501];
void strfun ( char *p, int min, int max );//靠右对齐两个字符串

int main()
{
int la, lb, i, j, m;

gets (a);
gets (b);

la = strlen (a);
lb = strlen (b);

if ( la > lb )
strfun ( b, lb, la );

else if ( la < lb )
strfun ( a, la, lb );

m = la > lb ? la : lb;

for ( i = m; i >= 0; --i )
{
c[i] += (a[i] - '0') + (b[i] - '0');
if( c[i] > 9 )
{
c[i] = c[i] - 10;
c[i-1]++;
}
}
if ( c[i] == 1 )
putchar ('1');

for( i = 0; i < m; i++ )
printf("%d", c[i]);

putchar ('\n');

system ("PAUSE");
return 0;
}

void strfun ( char *p, int min, int max )//靠右对齐两个字符串
{
int i, j, k;
k = max - min;
for ( i = max, j = min; i >= 0; --i, --j )
{
if ( i >= k )
*(p + i) = *(p + j);
else *(p + i) = '0';
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯