| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 289 人关注过本帖
标题:高精度加法疑问
只看楼主 加入收藏
naixin
Rank: 2
等 级:论坛游民
帖 子:16
专家分:26
注 册:2013-10-5
结帖率:100%
收藏
 问题点数:0 回复次数:1 
高精度加法疑问
#include<stdio.h>  
#include<string.h>  
  
#define N 100  
  
  
main()  
{  
    void add(char a[],char b[],char c[]);  
    char a[N],b[N];  
    char str[N];  
    scanf("%s%s",a,b);  
    add(a,b,str);  
    printf("%s",str);  
}  
  
void add(char a[],char b[],char c[])  
{  
    int i,e,d;  
    int n,m;  
    char temp;  
    n=strlen(a);  
    m=strlen(b);  
    for(i=0;i<n/2;i++) {temp=a[i];a[i]=a[n-1-i];a[n-1-i]=temp;}  
    for(i=0;i<m/2;i++) {temp=b[i];b[i]=b[m-1-i];b[m-1-i]=temp;}  
  
    e=0;  
    for(i=0;i<n&&i<m;i++)  
    {  
        d=a[i]-'0'+b[i]-'0'+e;  
        e=d/10;  
        c[i]=d%10+'0';  
    }  
    if(i<m)  
    {  
        for(;i<m;i++)  
        {  
            d=b[i]-'0'+e;  
            e=d/10;  
            c[i]=d%10+'0';  
        }  
    }  
    else  
    {  
        for(;i<n;i++)  
        {  
            d=a[i]-'0'+e;  
            e=d/10;  
            c[i]=d%10+'0';  
        }  
    }  
    if(e) c[i++]=e+'0';  
    c[i]=0;  
    n=i;  
  
    for(i=0;i<n/2;i++) {temp=c[i];c[i]=c[n-1-i];c[n-1-i]=temp;}  
}  
倒数第三行c【i】=0啥意思,为什么去掉就不对了
搜索更多相关主题的帖子: include 
2014-04-16 15:06
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:0 
   c[i]=0; 作用是加上串结束符,这里等价于 c[i]='\0';
没有串结束符,字符串就没有了串尾的界定。输出的时候通常会在后面连上一堆其他字符。

2014-04-16 15:58
快速回复:高精度加法疑问
数据加载中...
 
   



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

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