当前位置:首页 » 编程软件 » 编程加法

编程加法

发布时间: 2022-02-09 03:47:52

❶ 算术 - 加减法【c语言编程,求高手指点一二】!

我用TC写过一个
'大数运算'
模块
不过,我只能处理
255个数字
以内的运算
因为
gets(char
*str)
只接受
255以内的
字符
如果楼主觉得
可以的话
,可以发Email到我的
QQ邮箱
答案补充
方法:
其实很简单,就和用笔在纸上运算一样
1.
全部用字符指针来存储和运算
2.
逐位相加(减),并且处理进位(借位)
如果还有乘法、除法,那么可以以加减法作为运算基础
答案补充
重复字符太多,帖不上来啊!

❷ 运用C++制作简单的加法运算程序

在vs2015中,我们可以这样写代码:

int add(int a, int b)

{

return (b == 0) ? a : add(a ^ b, (a & b) << 1);

/*

if(b == 0)

return a;

else

return add(a ^ b, (a & b) << 1);

//异或结果 + 与运算结果左移一位

*/

}

拓展资料:

C++是面向对象的程序语言,区别我们的C语言,具体编程首先要定义一个类,类中包含私有成员以及公有成员两部分,私有成员主要是变量,公有成员主要是方法,另外还需要另外的.cpp程序来实现这些公有方法,以及一个主函数。一般的,外部对私有成员是不能直接访问的,需要通过调用公有方法来实现访问私有成员。

数据在计算机内存中是以二进制存储的。
几种常用的位运算:

  • 与运算&: 对应位均为1时为1,其它为0。

  • 或运算|: 对应位均为0时为0,其它为1。

  • 异或运算^: 对应位不相同时为1,相同时为0.

  • 按位取反~: 每一位取反

  • 右移>>: 将二进制进行右移,低位丢掉,高位补零。

  • 左移<<: 将二进制进行左移,低位补零,高位丢掉。

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

例子如下:

知识扩展:

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

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

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

❹ C++编程大数加法

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void main()
{
char atemp[10000],btemp[10000],b[10000],a[10000];
int c[10000],jw[10000];
int i,j,temp,anb,bnb,lena,lenb,lenmax,lenmin,lentemp;
int seta=0,setb=0,pd=0,tl=0,tll=0,is=0; //判断两数是否相等
scanf("%s",&atemp);
getchar();
scanf("%s",&btemp);
getchar();
lena=strlen(atemp);
lenb=strlen(btemp);
lenmax=lena>=lenb?lena:lenb;
lenmin=lenb<lena?lenb:lena;
for(i=0;i<=9999;i++)
{
jw[i]=0;
}
//都是正数或者都是负数,且位数一样的时候
if((('-'!=atemp[0]&&'-'!=btemp[0])&&(lena==lenb))||(('-'==atemp[0]&&'-'==btemp[0])&&(lena==lenb)))
{
for(i=0,j=lenmax-1;j>=0;i++,j--)
{
a[i]=atemp[j];
b[i]=btemp[j];
}
if(('-'==atemp[0]&&'-'==btemp[0])&&(lena==lenb))
{
lenmax-=1;
printf("-");
}
pd=1;
goto loop1;
}
//都是正数或者都是负数,且位数不一样的时候
if((('-'!=atemp[0]&&'-'!=btemp[0])&&(lena!=lenb))||(('-'==atemp[0]&&'-'==btemp[0])&&(lena!=lenb)))
{
if(lena>lenb)
{
for(i=0,j=lenmax-1;j>=0;i++,j--)
a[i]=atemp[j];
for(i=0,j=lenmin-1;j>=0;i++,j--)
b[i]=btemp[j];
}
if(lenb>lena)
{
for(i=0,j=lenmax-1;j>=0;i++,j--)
a[i]=btemp[j];
for(i=0,j=lenmin-1;j>=0;i++,j--)
b[i]=atemp[j];
}
for(i=0,j=lenmin;i<=lenmax-lenmin-1;i++,j++)
b[j]='0';
if(('-'==atemp[0]&&'-'==btemp[0])&&(lena!=lenb))
{
b[lenmin-1]='0'; //不知道为什么会这样
lenmax-=1;
printf("-");
}
pd=1;
goto loop1;
}
//atemp是负数,btemp是正数的时候,且长度一样的时候
if(('-'==atemp[0]&&'-'!=btemp[0])&&1==lena-lenb)
{
for(i=0,j=lenmax-1;j>=1;i++,j--)
a[i]=atemp[j];
for(i=0,j=lenmin-1;j>=0;i++,j--)
b[i]=btemp[j];
pd=2;
goto loop2;
}
//atemp是正数,btemp是负数的时候,且长度一样的时候
if(('-'==btemp[0]&&'-'!=atemp[0])&&1==lenb-lena)
{
for(i=0,j=lenmax-1;j>=1;i++,j--)
a[i]=btemp[j];
for(i=0,j=lenmin-1;j>=0;i++,j--)
b[i]=atemp[j];
pd=2;
goto loop2;
}
//一正一负,且atemp是负的时候
if(('-'==atemp[0]&&'-'!=btemp[0])&&(1!=lena-lenb))
{
if(lena>lenb)
{
for(i=0,j=lenmax-1;j>=1;i++,j--)
a[i]=atemp[j];
for(i=0,j=lenmin-1;j>=0;i++,j--)
b[i]=btemp[j];
for(i=0,j=lenmin;i<=lenmax-lenmin-1;i++,j++)
b[j]='0';
tl=1;
}
if(lenb>=lena)
{
for(i=0,j=lenmax-1;j>=0;i++,j--)
a[i]=btemp[j];
for(i=0,j=lenmin-1;j>=1;i++,j--)
b[i]=atemp[j];
for(i=0,j=lenmin-1;i<=lenmax-lenmin;i++,j++)
b[j]='0';
tll=1;
}
pd=2;
goto loop2;
}
//一正一负,且btemp是负的时候
if(('-'==btemp[0]&&'-'!=atemp[0])&&(1!=lenb-lena))
{
if(lena>=lenb)
{
for(i=0,j=lenmax-1;j>=0;i++,j--)
a[i]=atemp[j];
for(i=0,j=lenmin-1;j>=1;i++,j--)
b[i]=btemp[j];
for(i=0,j=lenmin-1;i<=lenmax-lenmin;i++,j++)
b[j]='0';
tll=1;
}
if(lenb>lena)
{
for(i=0,j=lenmax-1;j>=1;i++,j--)
a[i]=btemp[j];
for(i=0,j=lenmin-1;j>=0;i++,j--)
b[i]=atemp[j];
for(i=0,j=lenmin;i<=lenmax-lenmin;i++,j++)
b[j]='0';
tl=1;
}
pd=2;
goto loop2;
}
loop1: if(1==pd)
{
for(i=0;i<=lenmax-1;i++)
{
anb=((int)a[i])-48;
bnb=((int)b[i])-48;
temp=anb+bnb+jw[i];
if(10>temp)
{
c[i]=temp;
}
else
{
c[i]=temp%10;
jw[i+1]+=1;
if((i==lenmax-1)&&(0!=jw[lenmax]))
{
c[lenmax]=jw[lenmax];
lenmax+=1;
break;
}
}
}
for(i=lenmax-1;i>=0;i--)
printf("%d",c[i]);
printf("\n");
}
loop2:if(2==pd)
{
for(i=lenmax-1;i>=0;i--)
{
if(a[i]>b[i])
{
seta=1;
is=1;
break;
}
if(b[i]>a[i])
{
setb=1;
is=1;
break;
}
}
if(0==is)
{
printf("0\n");
exit(0);
}
if(1==tll)
lenmax+=1;
for(i=0;i<=lenmax-2;i++)
{
if((1==setb&&0==seta&&0==tl)||(1==seta&&0==setb&&1==tl))
{
anb=-(((int)a[i])-48);
bnb=((int)b[i])-48;
}
if((1==seta&&0==setb&&0==tl)||(1==setb&&0==seta&&1==tl))
{
anb=((int)a[i])-48;
bnb=-(((int)b[i])-48);
}
temp=anb+bnb+jw[i];
if(((-anb)==bnb)&&(0==jw[i])||(-anb<bnb))
{
c[i]=temp;
}
else
{
c[i]=temp+10;
jw[i+1]-=1;
}
}
lentemp=lenmax-2;
while(0==c[lentemp])
{
lentemp-=1;
}
if((1==seta&&0==setb&&0==tl&&1!=tll)||(1==setb&&0==seta&&(1==tl||1==tll)))
{
printf("-");
}
for(i=lentemp;i>=0;i--)
{
// if(0!=c[i])
// {
printf("%d",c[i]);
// }
}
printf("\n");
}
}

本程序全部自己写的。
测试结果如下:

❺ 编程---加法计算器

第五行改为:
scanf( "%d %d", &a, &b ); // 注意输入时,两个数字之间要打一个空格。

你的程序主要问题有两个。
一个简单些,&a &b不要放在双引号之内。
另一个比较隐蔽。你将两个%d连用,那假设用户输入123,好么a是12呢,还是a是1,b是23呢。
实际上,用户如果输入123,那么得到的结果是123都给了a,b没有得到值

❻ 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;

}

❼ 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:;
}

❽ c语言编程!!计算字符串实现加法

int delete_sub_str(const char *str, const char *sub_str, char *result_str) {//认为 result_str长度足够
int size1=strlen(str),size2=strlen(sub_str);
size_t i,j,n=0,k;
int *pi;
if(size1<size2){//长度不够
pch=new char[size1+1];
for( i=0;i<=size1;i++)result_str[i]=str[i];
return 0;
}
pi=new int[size1/size2];//按最大可能分配pi
for(i=0;i<size1-size2;i++){//记录子窜起始下标
if(str[i]==sun_str[0]){//判断是否为子窜起始
for(j=1;j<size2;j++){
if(str[i+j]!=sub_str[j])break;
}
if(j==size2){
pi[n++]=i;
i=i+size2-1;
}
}//if
}//for

for(i=0,j=0,k=0;i<n;i++){//拷贝前n断非子窜部分
for(;j<pi[i];j++,k++)result_str[k]=str[j];
j=p[i]+size2;
}
for(;j<size1;j++,k++)result_str[k]=str[j];//拷贝最后一部分非子窜
result_str[k]='\0;//尾部+0
delete[]pi;
return n;
}//delete

热点内容
ocr编程 发布:2025-01-11 05:51:24 浏览:252
androiddecoder 发布:2025-01-11 05:44:13 浏览:730
苏州数控编程培训 发布:2025-01-11 05:42:51 浏览:855
编程控制小船 发布:2025-01-11 05:35:05 浏览:756
萤石云清理缓存 发布:2025-01-11 05:34:29 浏览:779
怎么在电脑上传照片 发布:2025-01-11 05:30:20 浏览:487
python3哪个版本好 发布:2025-01-11 05:07:29 浏览:864
手机怎么访问外网 发布:2025-01-11 05:07:27 浏览:532
财务信息服务器搭建 发布:2025-01-11 04:48:09 浏览:875
算法实现过程 发布:2025-01-11 04:43:45 浏览:458