大数的加法

来源:互联网 发布:sw绘图软件下载 编辑:程序博客网 时间:2024/06/08 06:10
#include <stdio.h>#include <string.h>int main(){int a[100],b[100],c[100];char ch1[100],ch2[100];int i,peace=0;int index=0;int k,j;printf("请输入第一个数字:\n");scanf("%s",ch1);for(i=0;i<strlen(ch1);i++)//把字符数字转换成整数数字,进行数字相加。a[strlen(ch1)-i-1]=ch1[i]-'0';printf("请输入第二个数字:\n");scanf("%s",ch2);//同上for(i=0;i<strlen(ch2);i++)b[strlen(ch2)-i-1]=ch2[i]-'0';for(i=0;i<strlen(ch1) && i<strlen(ch2);i++)//相同位数的相加{c[i]=(a[i]+b[i]+peace)%10;peace=(a[i]+b[i])/10;index++;}if(strlen(ch1)>strlen(ch2))//位数多的数字进行进位运算{k=strlen(ch2);j=strlen(ch1);for(i=k;i<j;i++){c[i]=(a[i]+peace)%10;peace=(a[i]+peace)/10;index++;}}else{k=strlen(ch1);j=strlen(ch2);for(i=k;i<j;i++){c[i]=(b[i]+peace)%10;peace=(b[i]+peace)/10;index++;}}if(peace)//最高位进1{c[i]=peace;index++;}for(i=index-1;i>=0;i--)//输出printf("%d",c[i]);putchar('\n');return 0;}

0 0
原创粉丝点击