问题描述:两个很大很大的数相加,例如:
111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+
1111111111111111111111111111111111111111111111111111111111111111111111111111111111110
思路:输入俩数,逆置,逐位相加求和存到结果数组,逐位进位,逆序输出;
代码:
#include <stdio.h>
#define N 1000
int in_num(int a[]){
char ch;
int i=0;
while((ch=getchar())!='\n')//整数以字符形式输入,转数字形式存储;
a[i++]=ch-'0';
return(i);
}
int inverse(int a[],int x){//逆置操作
for(int i=0,j=x-1;i<j;i++,j--){
int tem=a[i];
a[i]=a[j];
a[j]=tem;
}
return(0);
}
int calculate(int a[],int b[],int c[],int max){
int i;
for(i=0;i<max;i++){//逐位求和计算,
c[i]=a[i]+b[i];
}
for(i=0;i<max;i++){//进位计算
c[i+1]+=c[i]/10;
c[i]=c[i]%10;
}
return(0);
}
int main(){
int a[N
本文介绍如何在C语言中处理大数相加的问题,通过输入大数,逆序处理,逐位相加并考虑进位,最终得到正确结果。提供了一段实现此功能的代码,并展示了运行结果。
订阅专栏 解锁全文
3085

被折叠的 条评论
为什么被折叠?



