C语言编程,输入两个整数A,B,并输出其和值,可能很大

#include<stdio.h>
#include<string.h>

for(i = 0;i<len;i++)
printf("%d",sum[i]);
printf("\n");
return 0;}
还有点问题,位数不相等时不对

unsigned long 的取值范围是0~4294967295如果还不够的话只能用数组自己定义加法运算了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-01-13
代码如下:
#include "stdio.h"
void main()
{

int a,b;
printf("请输入两个整数(a,b):");
scanf("%d,%d",&a,&b);
printf("和:%d\n",a+b);
printf("差:%d\n",a-b);
}
第2个回答  2013-06-17
楼主所发的这个代码应该是累加,而不是两个数相加。
第3个回答  推荐于2018-02-26
这种题不是普通的A+B,没有定义A,B的范围,那么A,B可以无限大,应该算是一道经典大数题,一般运用char型数组接收A,B的每一位数然后转化为int型模拟加法运算。下面这个代码是我的,可以参考一下
#include<stdio.h>
#include<string.h>
const int maxn = 10000;
char s1[10000],s2[10000];
int num1[maxn],num2[maxn],sum[maxn];
int main()
{
int t,i,j,k;
while(~scanf("%d",&t))
{
while(t--)
{
memset(num1,0,sizeof(num1));
memset(num2,0,sizeof(num1));
memset(sum,0,sizeof(sum));
memset(s1,'0',sizeof(s1));
memset(s2,'0',sizeof(s2));
scanf("%s %s",s1,s2);
if(s1[0]=='0'&&s2[0]=='0')
{
printf("0\n");
continue;
}
int len1 ,len2 ;
len1 = strlen(s1);
len2 = strlen(s2);
for( i = len1 - 1,j = 0; i >= 0; i --,j++)
num1[j] = s1[i]-'0';
for( i = len2 - 1, j = 0; i >= 0; i --,j++)
num2[j] = s2[i] - '0';
int len = len1 > len2 ? len1:len2;
for( i = 0; i<len; i++)
{
sum[i] += num1[i] + num2[i];
sum[i+1] += sum[i]/10;
sum[i] %= 10;
}
while(sum[i] == 0) i --;
for(;i>=0; i--)
printf("%d",sum[i]);
puts("");
}
}
return 0;
}
第一行先输入测试数据组数
下面几行 再输入测试数据本回答被提问者和网友采纳
第4个回答  2013-06-17
可能很大的话,就用long int吧,实在不行,就unsigned long int