C语言编程,输入两个整数A,B,并输出其和值,可能很大
#include<stdio.h>#include<string.h>for(i=0;i<len;i++)printf("%d",sum[i]);printf("\n")...
#include<stdio.h>
#include<string.h>
for(i = 0;i<len;i++)
printf("%d",sum[i]);
printf("\n");
return 0;}
还有点问题,位数不相等时不对 展开
#include<string.h>
for(i = 0;i<len;i++)
printf("%d",sum[i]);
printf("\n");
return 0;}
还有点问题,位数不相等时不对 展开
6个回答
展开全部
代码如下:
#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);
}
#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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主所发的这个代码应该是累加,而不是两个数相加。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这种题不是普通的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;
}
第一行先输入测试数据组数
下面几行 再输入测试数据
#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;
}
第一行先输入测试数据组数
下面几行 再输入测试数据
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能很大的话,就用long int吧,实在不行,就unsigned long int
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询