c语言如何实现两个数相加并输出和

c语言如何实现两个数相加并输出和,第1张

#include <stdioh>

int main()

printf("请输入两个整数:");

scanf("%d %d",&a,&b);//

sum=a+b;//三、数据处理,把a、b的和赋值给sum;

printf("这两个数的和是:%d\n",sum);//

return 0;//返回;

C语言,是一种通用的、过程式的编程语言,广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和较高的移植性等特点,在程序员中备受青睐,最近25年是使用最为广泛的编程语言。

C语言是由UNIX的研制者丹尼斯·里奇(Dennis Ritchie)于1970年 由 肯·汤普逊(Ken Thompson)所研制出的B语言的基础上发展和完善起来的,目前,C语言编译器普遍存在于各种不同的 *** 作系统中,例如UNIX、MS-DOS、Microsoft Windows及Linux等,C语言的设计影响了许多后来的编程语言,例如C++、Objective-C、Java、C#等。

既然楼主要求用C语言,那就用经典的C指针吧

#include <stdioh>

#include <stringh>

#include <stdlibh>

char BigIntAdd(char x,char y,char z)

{

int lenx=strlen(x);

int leny=strlen(y);

char pmax=x,pmin=y,pz=z,p1,p2,t;

int i,lenmax=lenx,lenmin=leny;

if (lenx < leny)

{

pmax=y;

pmin=x;

lenmax=leny;

lenmin=lenx;

}

p1=pmax+lenmax-1;

p2=pmin+lenmin-1;

while(p2>=pmin)

{

pz = p1 + p2 -'0';

if (pz>z && (pz-1)>='0'+10)

{

(pz-1)-=10;

pz+=1;

}

p1--;p2--;pz++;

}

for(i=0;i<lenmax-lenmin;i++)

{

pz=p1;

if (pz>z && (pz-1)>='0'+10)

{

(pz-1)-=10;

pz+=1;

}

pz++;p1--;

}

pz--;

if (pz>='0'+10)

{

(pz++)-=10;

pz='1';

}

for(p1=z;p1<pz;p1++,pz--)

{

t=p1;p1=pz;pz=t;

}

return z;

}

void main()

{

system("color 1e");

char x[102410]={0},y[1024]={0},z[1024]={0};

printf("Enter Large Integers 1:\n");

scanf("%s",x);

printf("Enter Large Integers 2:\n");

scanf("%s",y);

BigIntAdd(x,y,z);

printf("\n\nBigInt Add:\n%s\n\t+\n%s\n\t=\n%s\n",x,y,z);

system("pause");

}

主要想法是,判断两个数字的长短,找出最短的数字,从个位数开始与另一个数的相应位进行相加(注意判断向上进位),将结果逐个保存在结果字符串中。最后将长的那个数字 剩下的部分直接 放在结果字符串中,然后将结果字符串反转,得到结果

int a,b;

scanf("%d%d",&a,&b);

printf("%d %d %d %d %d",a+b,a-b,ab,a/b,a%b);

好像是这样。

#include <stdioh>

int main()

{ int a,b,c;

scanf("%d,%d",&a,&b);

c=a+b;

printf("%d",c);

return 0;

}

要实现任意大小两个整数相加,那么就不能存在溢出情况。所以无法使用任何系统类型,唯一的方式是用数组模拟整数存储,并自行实现加法 *** 作算法。

需要注意以下几点:

1 大数如何存储及输出;

2 计算时进位的处理;

3 两个计算数长度不同时的处理;

4 当达到最高位仍有进位的处理,即结果的长度大于任意一个 *** 作数。

以下是一个比较简单的代码:

#include <stdioh>

#include <stdlibh>

char s[101];

int sum[101];

int main() 

{

    int i, j;

    while (gets(s), strcmp(s, "0")) {//巧妙化解开多少个数组 算多少个数的和的局面

        j=strlen(s);

        for (i=j-1; i>=0; --i) {

            sum[j-i-1]+=(s[i]-'0');//s[i]-'0'表示字符数字转化成int数字  倒序加到sum中 sum第一个数是s的最后一个数的和

        }

    }

    j=101; while(!sum[j])--j;  //重新赋值j 使j为目前sum的总位数

    for (i=0;i<j;++i) {   //如果s[i]加成两位数 将十位数加给前一位数

        sum[i+1]+=sum[i]/10;

        sum[i]=sum[i]%10;

    }

    for (i=j; i>=0; --i) {

        printf("%d", sum[i]);

    }

}

1、首先把头文件,main函数写好#include<stdioh>  main(),如下图所示。

2、之后需要定义几个变量,一个存放和,一个从1开始到100,如下图所示。

3、之后书写for循环,首先给i赋值为1,其中如果要求200以内和把数字100改为200即可。

4、然后写for循环里面的内容,sum=sum+i;把每个i的值加到sum里面。

5、最后进行输出,编写输出语句把它输出出来,sum为整形,故用%d,如下图所示就完成了。

#include

int

main()

{

int

a,sum=0;

scanf("%d",&a);

for(;a>=1;a=a/10)

{

sum+=a%10;

}

printf("%d\n",sum);

return

0;

}

错在循环中你的a没有赋值,一直是不变的

以上就是关于c语言如何实现两个数相加并输出和全部的内容,包括:c语言如何实现两个数相加并输出和、两个超长正整数相加(C语言)、用C语言编写一个程序,实现任意长度的两个正整数的加法运算等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9736630.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存