C语言编程 求解 输入两个大整数(大于100位),求它们之和

作者&投稿:爨伏 (若有异议请与网页底部的电邮联系)
C语言,输入两个整数a和b,若和大于100则输出百位以上数字,否则,输出他们的和。求代码。~

#include int main() {int a,b,sum;printf("输入 a b(0 0 to quit):");while(scanf("%d%d",&a,&b) == 2 && a && b) {sum = a + b;if(a + b < 100) printf("%d + %d = %d
",a,b,sum);else printf("%d + %d : %d
",a,b,sum / 100);printf("输入 a b(0 0 to quit):");}return 0;}

#include
int main()
{
int a,b;
scanf("%d%d",&a,&b);
if(a<=100 && b<=100)
printf("%d",a+b);
else if(a>100 && b<=100)
printf("%d",a);
else if(a>100 && b>100)
printf("%d,%d",a,b);
else
printf("%d",b);
}

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

void RightMoving(char *s,int n)
{
char *p=s,*q;
while(*p++!='\0');
for(q=p;q!=s;q--)
*(q-1+n) = *(q-1);
for(int i=0;i<n;++i)s[i] = '0';
}
int LargerIntegerAdd(char *result,char *n1,char *n2)
{
int i,t=0,num;
num = strlen(n1)>strlen(n2)?strlen(n1):strlen(n2);

result[num]='\0';
for(i=num-1;i>-1;i--)
{
result[i] = (n1[i] + n2[i] + t - '0');
t=0;
if(result[i]>'9')
{
t++;
result[i] -= 10;
}
}
return t;
}
int main()
{
int i;
char n1[200],n2[200],result[200];
gets(n1);
gets(n2);

printf("%s+%s=",n1,n2);
if(strlen(n1)>strlen(n2))
RightMoving(n2,strlen(n1)-strlen(n2));
if(strlen(n1)<strlen(n2))
RightMoving(n1,strlen(n2)-strlen(n1));
i = LargerIntegerAdd(result,n1,n2);
if(i>0)
printf("%d",i);
puts(result);
return 0;
}

你刚提问就在敲……其中不小心多加了1搞的调试到现在,终于好了!



/*

n1 = 33685402985412, n2 = 12340

result = 33685402997752

Press any key to continue

*/

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

#define MAXLEN 120

void RightMoving(char *s,int n) {
int i,len = strlen(s);
for(i = len; i >= 0; --i) s[i + n] = s[i];
for(i = 0; i < n; ++i) s[i] = '0';
}

void LargerIntegerAdd(char *result,char *n1,char *n2) {
int i,num,c = 0,len;
int len1 = strlen(n1);
int len2 = strlen(n2);
if(len1 > len2) {
RightMoving(n2,len1 - len2);
len = len1;
}
else {
RightMoving(n1,len2 - len1);
len = len2;
}
for(i = len - 1; i >= 0; --i) {
num = n1[i] - '0' + n2[i] - '0' + c;
result[i] = num%10 + '0';
c = num/10;
}
if(c) {
RightMoving(result,1);
result[0] = c + '0';
}
result[len] = '\0';
}

int main() {
char n1[MAXLEN] = "33685402985412";
char n2[MAXLEN] = "12340";
char result[MAXLEN];
printf("n1 = %s, n2 = %s
",n1,n2);
LargerIntegerAdd(result,n1,n2);
// printf("n1 = %s, n2 = %s
",n1,n2);
printf("result = %s
",result);
return 0;
}


#include <stdio.h>
void RightMoving(char *s, int n)
{
    int len=strlen(s);
    int i;
    for(i=len-1;i>=0;i--)
        s[i+n]=s[i];
    for(i=0;i<n;i++)
        s[i]='0';
    s[len+n]='\0';
}

int LargeIntegerAdd(char *result,char *n1,char *n2)
{
    int i,j,up,r;
    int len=strlen(n1);
    for(i=0;i<=len+1;i++)
        result[i]=0;
    for(i=len-1;i>=0;i--)
    {
        r=result[i+1]+n1[i]+n2[i]-2*'0';
        result[i+1]=r%10+'0';
        result[i]+=r/10;
    }
    result[0]+='0';
    if(result[0]=='0')
        return 0;
    else
        return 1;
}
int main()
{
    char n1[200],n2[200],result[200];
    int len1,len2;
    int r;
    gets(n1);
    gets(n2);
    len1=strlen(n1);
    len2=strlen(n2);
    if(len1<len2)
        RightMoving(n1,len2-len1);
    else if(len2<len1)
        RightMoving(n2,len1-len2);
    r=LargeIntegerAdd(result,n1,n2);
    if(r==1)
        printf("%s
",result);
    else
        printf("%s
",result+1);
}


稍后给你发私信。
楼上写了,不发了。

用位来实现的吗???


姜堰市19652295684: C语言,求两个整数中的较大数并输出.谁能教我怎么编程. -
有郭活血: 1 2 3 4 5 6 7 8 9 10 11 12#include<stdio.h> intmain(){ inta,b; printf("请输入5261两个整数:\n"); scanf("%d %d",&a,&b); if(a>b)printf("较大数是4102%d\n",a); elseprintf("较大数是%d\n",b); return0; } 输入时两个数以1653空格分隔,这个程序比较回简单,没用函数写答

姜堰市19652295684: C语言里怎样从键盘前输入两个较大的整数? -
有郭活血: #include <stdio.h> void main() { int a,b; printf("请输入两个整数:\n"); scanf("%d",&a); scanf("%d",&b); printf("较大的数是:%d",a>b?a:b); 这一句也可这么写 if(a>b)printf("较大的数是:%d",a); else printf("较大的数是:%d",b); }

姜堰市19652295684: 输入两个整数,输出较大的输,用C语言编程 -
有郭活血: int x,y; scanf(%d,&x); scanf(%d,&y); if(x>y) printf(x); else printf(y); 其它自己完善

姜堰市19652295684: C语言中 输入两个整数,求 -
有郭活血: #include<stdio.h> int main() {int i;int first;int secondr;int sum=0;printf("请输入任意两个整数(负数也可有):");scanf("%d %d",&first,&second); // if (first > second) {sum = first; first = second; second = first;} // 确保first小,second...

姜堰市19652295684: 编写一个C语言程序,实现在键盘上任意输入两个整数,并输出较大者 -
有郭活血: #include<stdio.h> main() {int i,j,max; scanf("%d%d",&i,&j); max=o; if(i>j) max=i; else if max=j; }满意请采纳

姜堰市19652295684: C语言:输入两个整数,求它们的差,要求以减法算式形式输入,以算式及答案形式输出. -
有郭活血: main() {int a,b,c;//定义3个整数printf("please input two int number\n");//提示 请输出2个整数scanf("%d,%d",&a,&b);//输入2个整数,分别赋值给a,b这2个变量c=a-b;//把a-b的差赋值给c变量printf("a-b=%d\n",c);//输出a-b的差 }

姜堰市19652295684: C语言中求解两个整数的值 -
有郭活血: 第一个得3,因为a++就是在此次语句执行完毕以后进行加,而第二个结果得10分析如下:第一个++a执行完后a=2,然后执行第二个++a,结果a=3,然后执行(++a)+(++a)这个累加,结果得到3+3=6,...

姜堰市19652295684: c语言用字符串求两个大整数相加,帮我看下这个代码(我自己写的),得不出结果 -
有郭活血: #include#include#define N 100 int main() { char input1[N]={'0'}, input2[N]={'0'}; int output[N+1]={0}; printf("请输入第一个大整数\n"); gets(input1); printf("请输入第二个大整数\n"); gets(input2); int a=0,i,k,m,n; if(strlen(input1)>=strlen(input2))...

姜堰市19652295684: C语言 输入任意两个整数,求输出其中最大的整数 怎么做 -
有郭活血: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16#include "stdio.h"intmain() {inta,b; printf("Please enter two numbers\n");scanf("%d %d", &a, &b); if(a>b)printf("The bigger number:%d",a);elseprintf("The bigger number:%d",b); return0; }

姜堰市19652295684: c编程:输入两个整数,通过调用函数求最大值、最小值和平均值 -
有郭活血: #include<stdio.h> int Max(int,int); int Min(int,int); float Avg(int,int); int main(){ int m,n; printf("请输入两个整数(以逗号隔开):"); scanf("%d,%d",&m,&n); printf("最大的数为:%d\n",Max(m,n)); printf("最小的数为:%d\n"...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网