当前位置:首页 » 编程语言 » 代码整数加法c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

代码整数加法c语言

发布时间: 2022-05-14 14:34:26

A. 大整数加法 c语言 求代码 要求如下

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

voidreverse(char*s)/*将字符串逆置*/
{
intlength;
inti=0;
chartemp;
length=strlen(s);
while(i<length-i-1)
{
temp=s[i];
s[i]=s[length-i-1];
s[length-i-1]=temp;
i++;
}
}

voidAddBigNum(char*s1,char*s2,char*result)
{
intlen1=strlen(s1);
intlen2=strlen(s2);
intacc=0,temp,i;/*acc为进位标记*/
if(s1==NULL||s2==NULL||result==NULL)
{
return;
}
reverse(s1);
reverse(s2);
for(i=0;i<len1&&i<len2;i++)
{
temp=s1[i]-'0'+s2[i]-'0'+acc;/*计算每位的实际和*/
result[i]=temp%10+'0';/*通过求余数来确定每位的最终值*/
if(temp>=10)/*通过这个if..else..条件来判断是否有进位,并设置进位值*/
acc=1;
else
acc=0;
}
if(i<len1)/*两个加数位数不同*/
{
for(;i<len1;i++)
{
temp=s1[i]-'0'+acc;/*依旧要考虑进位,比如9999+1的情况*/
result[i]=temp%10+'0';
if(temp>=10)
acc=1;
else
acc=0;
}
}
if(i<len2)
{
for(;i<len2;i++)
{
temp=s2[i]-'0'+acc;
result[i]=temp%10+'0';
if(temp>=10)
acc=1;
else
acc=0;
}
}

if(acc==1)/*考虑如:123+911=1034的情况,如果不增加这个条件会得到结果为034,进位被舍弃*/

result[i++]='1';

result[i]='';
reverse(result);
}

main()
{
chars1[405];
chars2[405];
charresult[405];
intN;
scanf("%d",&N);
while(N--)
{
scanf("%s%s",s1,s2);
AddBigNum(s1,s2,result);
printf("%s ",result);
}
return0;
}

运行结果如图:

B. 如何C语言中实现两个任意大小的整数的相加

#include<stdio.h>
#include<string.h>
intmain()
{
chararr1[201],arr2[201];
printf("请输入加数:");
scanf("%s",&arr1);
printf("请输入加数:");
scanf("%s",&arr2);
intlen1=strlen(arr1);
intlen2=strlen(arr2);
inti,f=0;
inta[201]={0};intb[201]={0};intsum[202]={0};
intj=0;
for(i=len1-1;i>=0;i--)
{
a[j++]=arr1[i]-'0';
}
j=0;
for(i=len2-1;i>=0;i--)
{
b[j++]=arr2[i]-'0';
}
intmax=(len1>len2)?len1:len2;
for(i=0;i<max;i++)
{
sum[i]=a[i]+b[i];
}
for(i=0;i<max;i++)
{
if(sum[i]>=10&&i<max-1)
{
sum[i+1]++;
sum[i]-=10;
}
if(sum[i]>=10&&i==max-1)
{
f=1;
sum[i+1]++;
sum[i]-=10;
}
}
printf("计算结果为:");
if(f==1)printf("%d",f);
for(i=max-1;i>=0;i--)
{
printf("%d",sum[i]);
}
return0;
}

C. C语言 大整数加减法

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

char a[1000],b[1000];
int c[1001];
int x,y,i,j,k;
int blen=0;
int alen=0;
char flag = '+';//用于减法标记负数
int Subtract(char *a, char *b, int len) { //为了避免代码重复,将共同的计算抽出写成函数
int i;
for (i=len-1; i>=0; i--) {
if (a[i] < b[i]) {
c[i] = a[i] + 10 - b[i];
b[i-1]++;
} else {
c[i] = a[i] - b[i];
}
}
return 0;
}

int Subtraction(){
for (i=0;i<100;i++)
{
scanf("%c",&b[i]);
if(b[i]=='\n')
break;
blen++;
}
printf("=");
if(alen>blen)
{
x=(alen-blen);
for(i=blen-1;i>=0;i--)
{
alen--;
b[alen]=b[i];
}
for (i=0;i<x;i++)
b[i]='0';
alen=blen+x;
blen=alen;
} else if (blen > alen) {
x=(blen-alen);
for(i=alen-1;i>=0;i--)
{
blen--;
a[blen]=a[i];
}
for (i=0;i<x;i++)
a[i]='0';
blen=alen+x;
alen=blen;
}
for (i=alen-1;i>=0;i--) {
a[i]=a[i]-'0';
b[i]=b[i]-'0';
}
if (strcmp(a, b) > 0) {
Subtract(a, b, alen);
}else {
flag = '-';
Subtract(b, a, alen);
}
return 0;
}

int Addition(){
for (i=0;i<100;i++)
{ scanf("%c",&b[i]);
if(b[i]=='\n')
break;
blen++;
}
printf("=");
if(alen>blen)
{
x=(alen-blen);
for(i=blen-1;i>=0;i--)
{
alen--;
b[alen]=b[i];
}
for (i=0;i<x;i++)
b[i]='0';
alen=blen+x;
} else if (blen > alen) {
x=(blen-alen);
for(i=alen-1;i>=0;i--)
{
blen--;
a[blen]=a[i];
}
for (i=0;i<x;i++)
a[i]='0';
blen=alen+x;
alen=blen;
}

for (i=alen-1;i>=0;i--) {
a[i]=a[i]-'0';
b[i]=b[i]-'0';
if(c[i+1]+a[i]+b[i]>=10)
{
c[i]=(c[i+1]+a[i]+b[i])/10;
c[i+1] = (c[i+1]+a[i]+b[i])%10;

}
else
{
c[i+1]+=(a[i]+b[i]);
}
}

return 0;

}

int main()
{
for (i=0;i<100;i++)
a[i]=0;
for (i=0;i<100;i++)
b[i]=0;
for (i=0;i<101;i++)
c[i]=0;

for (i=0;i<100;i++)
{
scanf("%c",&a[i]);
if(a[i]=='+')
{
Addition();
goto output1;
}
if(a[i]=='-')
{
Subtraction();
goto output2;
}
alen++;
}
output1:
{
for (i=0;i<=alen;i++)
printf("%d",c[i]);
return 0;
}
output2:
{
printf("%c", flag);
for (i=0;i<alen;i++)
printf("%d",c[i]);
return 0;
}
}

代码运行结果:
123456789-12345
=+123444444

Terminated with return code 0
Press any key to continue ...

123456+111111
=0234567

Terminated with return code 0
Press any key to continue ...

1000000-1
=+0999999

Terminated with return code 0
Press any key to continue ...

1-1000000
=-0999999

Terminated with return code 0
Press any key to continue ...

//对你的代码作了! 希望有助于你的学习。

D. c语言简单加法

正确的代码如下:
#include<stdio.h>
void main()
{
int a,b,c;
a=6;
b=7;
c=a+b;
printf("c=%d”,c);
}

在你的代码中最后的输出是错误的,从哪里来的d,而且你要输出的是c吧,就算是d你也没有定义d,C语言的代码一定要先定义再使用,把最后输出的d改为c就可以了,还有就是标点符号要注意,不要写错,一定要注意,要仔细。

资料扩展

相应的可以写出求加减乘除的代码如下:

#include<stdio.h>

void main()

{

int a,b;

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

printf("%d ",a+b);

printf("%d ",a-b);

printf("%d ",a*b);

printf("%d ",a/b);

return 0;

}

E. C语言编程 100以内整数加减法

srand(time(0));
inta[20];
for(inti=0;i<20;i++)
{
a[i]=rand()%100;
}
for(inti=10;i<20;i+=2)
{
if(a[i]<a[i+1])
{
intt=a[i];a[i]=a[i+1];a[i+1]=t;
}
}
intscore=0;
for(inti=0;i<20;i+=2)
{
charc=i<10?'+':'-';
printf("%d%c%d=几? ",a[i],c,a[i+1]);
intx;
scanf("%d",&x);
if((i<10&x=a[i]+a[i+1])|(i>=10&x=a[i]-a[i+1]))
{
score+=10;
cout<"回答正确"<<endl;
}
elsecout<"回答错误"<<endl;
}
switch(score)
{
case0:
case10:
case20:
case30:
case40:
case50:cout<<"要加油哦"<<endl;break;
case60:
case70:
case80:cout<<"真不错哦"<<endl;break;
case90:cout<<"你真棒"<<endl;break;
case100:cout<<"酷毙了"<<endl;break;
default:;
}

F. C语言 整数加法

不是,加数因为小于30000,而int的范围是-32767~32768,所以加数定义成int即可,不果最后的和要定义成long,因为相加之后可能超过了int能表示的范围。

G. 简单的C语言加法程序代码都有什么

#include <stdio.h>


void main()


{


int a,b,c;//定义三个整数


scanf("%d%d",&a,&b);//输入两个整数


c=a+b;//把a+b的值付给c


printf("这两个数的和是: %d+%d=%d",a,b,c);//输出结果


}

H. C语言利用位运算实现整数的加法运算

首先讲讲异或

1^0=1 1^1=0 0^1=1 0^0=0

(1+0)mod2=1 (1+1)mod2=0 (0+1)mod2=1 (0+0)mod2=0

mod是求余数的运算

于是我们可以把异或看成不带进位的二进制加法。(我们经常称异或是“模2和”)

sum = a ^ b; sum也就是a和b不带进位的和。

现在考虑进位:

1+1时会产生进位剩下的都不会,正好符合按位与的性质

1^1=1 1^0=0 0^1=0 0^0=0

即a和b按位与后是1的位会进位

而每一位进位的效果就是它左边的一位加一

所以假设进位的各位是carry,进位的效果就是sum+(carry左移一位)

既然是求和 就可以直接调用Add(sum,carry<<1)

当不出现进位的时候,递归就可以终止了,所以有
if (b == 0) return a;

I. C语言实现大整数加法

//把各位的数码存入字符数组中,注意ASCAII码的转换
#include<stdio.h>
#include<string.h>
#include<conio.h>
intmain()
{
ints,t,i,len1,len2;
chars1[30],s2[30],n1[30],n2[30],sum[31];


//将字符串以数码形式按倒序存储于新字符串中,便于计算
printf("input2num(小于10^40): ");
scanf("%s%s",&s1,&s2);
len1=strlen(s1);
len2=strlen(s2);
t=0;
for(i=len1;i>=0;i--)n1[t++]=s1[i-1]-48;
t=0;
for(i=len2;i>=0;i--)n2[t++]=s2[i-1]-48;


//高位补0
if(len1>len2)
{
n1[len1]=0;
for(i=len2;i<len1;i++)n2[i]=0;
}
if(len1<len2)
{
n2[len2]=0;
for(i=len1;i<len2;i++)n1[i]=0;
}

//计算
t=0;
s=0;
for(i=0;i<(len1>len2?len1:len2);i++)
{
s=n1[i]+n2[i]+t;//s为数码之和
sum[i]=s%10;//sum[i]为该位上的数码
t=s/10;//t为进位
s=0;
}

//输出
putchar(10);
if(t>0)
{
sum[i]=t;
for(s=i;s>=0;s--)printf("%c",sum[s]+48);
}
else
{
for(s=i-1;s>=0;s--)printf("%c",sum[s]+48);
}
getch();
}

J. 用C语言写一个加法运算的代码怎么写

例子如下:

知识扩展:

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

C语言属于高级程序语言的一种,它的前身是“ALGOL”。其创始人是布朗·W·卡尼汉和丹尼斯·M·利奇。C语言问世时是带有很大的局限性,因为它只能用于UNIX系统上。然而随着科学技术的进步,计算机工业的发展,C语言逐渐脱离UNIX。1987年美国标准化协会制定了C语言的国际标准,简称“ANSI C”,从此以后它便成为一种广泛使用的程序语言。