#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语言编写一个程序,实现任意长度的两个正整数的加法运算等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)