由于某些原因,我于今天2017-4-19将我的博文搬到博客园了,以后我就在这里扎根了。

 

      之前想过在博客写文章方便日后复习,但一直未能实现,所以,现在这篇是我个人人生中第一篇博客,所以写博客完全没经验,可能会有些啰嗦,读者将就着看吧,哈哈。由于本人还是学生,所以有理解不对的地方,请各位大神指出,让我,让后面看到此文章的人共同进步,谢谢,本文适合新手看,个人觉得思路挺清晰,大神可飘过,勿喷。

     大数加法,可以模拟小学的加法,主要是几步:由字符型转换成整形数组,反转相加,处理进位情况,再转换回字符型输出答案。废话不多说了,代码如下:

   

 

# include<stdio.h>
# include<string.h>
char * sum(char *a,char*b)//对C语言来说返回一个字符指针,因为我们的结果是以字符串形式输出
{
int s[1000]= {0};//用整形数组存储数字,记得清零
char c[1000];//这将是我们用来输出的数组,后面直接返回数组名 c即可
int i,j,maxlen,d;
int la=strlen(a),lb=strlen(b);
la>lb?maxlen=la:maxlen=lb;//这里是要找出两个数字的最高位
for(j=la-1; j>=0; j--)//将字符转换成数字并反转存进整形数组
s[la-1-j]+=a[j]-'0';
for(j=lb-1; j>=0; j--)//同上
s[lb-1-j]+=b[j]-'0';
for(i=0,d=0; i<maxlen; i++)//d是进位的数,十进制一般都是1了。
{
s[i]+=d;//从低位开始
d=s[i]/10;//如果两数相加超过十 d就会变1
s[i]%=10;//然后此时s[i]存的就是该位上的数字
}
if(d>0)//处理最高位
s[maxlen++]+=d;
for(i=maxlen-1; i>=0; i--)//再将整形数组 反转转换为字符数组
c[maxlen-1-i]=s[i]+'0';
c[maxlen]='\0';//最后面加上结束符
return c;//返回字符指针
}
int main(void)
{
char a[1000],b[1000];
char *c;
while(scanf("%s %s",a,b))
{
c=sum(a,b);
printf("%s\n",c);
}
return 0;
}

以上就是鄙人之见
测试效果如下:

大数加法之C语言函数法(只有正数版)的更多相关文章

  1. C语言 · 大数加法

    算法提高 大数加法   时间限制:1.0s   内存限制:256.0MB      问题描述 输入两个正整数a,b,输出a+b的值. 输入格式 两行,第一行a,第二行b.a和b的长度均小于1000位. ...

  2. 玲珑杯1007-A 八进制大数加法(实现逻辑陷阱与题目套路)

    题目连接:http://www.ifrog.cc/acm/problem/1056 DESCRIPTION Two octal number integers a, b are given, and ...

  3. C语言函数指针基础

    本文写的非常详细,因为我想为初学者建立一个意识模型,来帮助他们理解函数指针的语法和基础.如果你不讨厌事无巨细,请尽情阅读吧. 函数指针虽然在语法上让人有些迷惑,但不失为一种有趣而强大的工具.本文将从C ...

  4. Go语言 函数,工程管理

    Go语言 函数,工程管理 1.无参无返回值函数的使用 package main import "fmt" func main() { // 无参无返回值函数的调用:函数名() fu ...

  5. 05. Go 语言函数

    Go 语言函数 函数是组织好的.可重复使用的.用来实现单一或相关联功能的代码段,其可以提高应用的模块性和代码的重复利用率. Go 语言支持普通函数.匿名函数和闭包,从设计上对函数进行了优化和改进,让函 ...

  6. 从linux0.11中起动部分代码看汇编调用c语言函数

    上一篇分析了c语言的函数调用栈情况,知道了c语言的函数调用机制后,我们来看一下,linux0.11中起动部分的代码是如何从汇编跳入c语言函数的.在LINUX 0.11中的head.s文件中会看到如下一 ...

  7. 51nod 1005 大数加法

    #include<iostream> #include<string> using namespace std; #define MAXN 10001 },b[MAXN]={} ...

  8. c#大数加法

    在C#中,我们经常需要表示整数.但是,c#的基本数据类型中,最大的long也只能表示-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807之间的数 ...

  9. C语言(函数)学习之strstr strcasestr

    C语言(函数)学习之[strstr]&[strcasestr]一.strstr函数使用[1]函数原型char*strstr(constchar*haystack,constchar*needl ...

随机推荐

  1. escape、unescape、encodeURIComponent、decodeURLComponent

    项目中遇到的问题,当我设置一个标签的属性,这个属性值含有js内容,这样就会被执行产生安全问题 解决办法:,可以将后端给的内容先encodeURIComponent,获取的时候再decodeURICom ...

  2. 安装Windows Azure Powershell

    本文将介绍如何安装Windows Azure Powershell 1.打开Azure官方链接:https://www.azure.cn/downloads/ 2.按照向导进行安装 3.打开系统自带的 ...

  3. iOS 中的 Delayed Transition

    Android 的动画体系中,存在一类由 TransitionManager. beginDelayedTransition 管理的动画.这个方法,很特殊.执行此方法后,其后续的 UI 变化,不会立即 ...

  4. Python pip 下载速度慢? Windows 设置 国内源,用 阿里云 国内镜像 加速

    pip 提供了对 Python 包的查找.下载.安装.卸载的功能,是非常方便的 Python 包管理工具.但是,令人苦恼的是 pip 在国内的下载速度非常慢,速度常常只有每秒几十 K,甚至才几 K,小 ...

  5. appendChild方法详解

    方法:target.appendChild(ele); 执行该方法时,会发生两部操作: 1.将元素ele从原来的父元素中移除掉 2.将元素追加至新的目标元素中,并且保留元素的所有样式信息和事件... ...

  6. table固定头部,表格tbody可上下左右滑动

    当表格头部固定时,需要分为两个表格来做:一部分是thead,一部分是tbody,具体实现方式如下: html代码: <div class="table_box_big"> ...

  7. Winform界面中主从表编辑界面的快速处理

    在Winform开发中,我们往往除了常规的单表信息录入外,有时候设计到多个主从表的数据显示.编辑等界面,单表的信息一般就是控件和对象实体一一对应,然后调用API保存即可,主从表就需要另外特殊处理,本随 ...

  8. ASP.NET Core 认证与授权[6]:授权策略是怎么执行的?

    在上一章中,详细介绍了 ASP.NET Core 中的授权策略,在需要授权时,只需要在对应的Controler或者Action上面打上[Authorize]特性,并指定要执行的策略名称即可,但是,授权 ...

  9. 《Metasploit魔鬼训练营》第一章习题

    书本p391.The time line is as follows: * May 7, 2007: Initial defect disclosure to the security@samba.o ...

  10. DNS:域名系统

    概述: DNS的作用在于将域名转换为对应的IP地址. DNS名字空间和UNIX文件系统相似,也是树形结构.以"."结尾的域名称为FQDN(Full Qualified Domain ...