用c语言设计一个20位长的整数加减另一个数的加法计算器

如题所述

第1个回答  推荐于2016-06-15
20位的不能直接用自带整形做了,按字符串来输入。C语言语法不是很熟悉,给出了C++的。

加法:
string sum(string s1,string s2)
{
if(s1.length()<s2.length())
{
string temp=s1;
s1=s2;
s2=temp;
}
for(intn1=s1.length()-1,n2=s2.length ()-1;n1>=0;n1--,n2--)
{
s1[n1]=char(s1[n1]+(n2>=0?s2[n2]-'0':0));
if(s1[n1]-'0'>=10)
{
s1[n1]=char((s1[n1]-'0')%10+'0');
if(n1)
s1[n1-1]++;
else
s1='1'+s1;
}
}
return s1;
}
减法:
string subing(string s1,string s2)
{
boolsign=0;
if(s1.length()<s2.length()||(s1.length()==s2.length()&&s1<s2))
{
string temp=s1;
s1=s2;
s2=temp;
sign=1;
}
for(int n1=s1.length()-1,n2=s2.length()-1;n1>=0;n1--,n2--)
{
s1[n1]=char(s1[n1]-(n2>=0?s2[n2]-'0':0));
if(s1[n1]<'0')
{
s1[n1]+=10;
s1[n1-1]--;
}
}
intloc=s1.find_first_not_of('0');
if(loc==-1)
return "0";
if(sign)
return'-'+s1.substr(loc);
returns1.substr(loc);
}追问

问下如果小数减大数,该如何设计呢?例如增加一位标志位又该如何写^_^

追答

小的减大的,减法里已经包含了,bool变量sign表示就是是否需要在前面添加 -

本回答被提问者采纳

用c语言设计一个简单的加减乘除计算器
1、打开visual C++ 6.0-文件-新建-文件-C++ Source File。2、输入预处理命令和主函数:#include \/*函数头:输入输出头文件*\/,void main()\/*空类型:主函数*\/。3、定义变量:int a,b,d; \/*定义变量的数据类型为整型*\/,char c;\/*定义变量的数据类型为字符型*\/。4、输入四则运算式:pri...

用C语言做一个计算器,能实现加减乘除混合运算?
是的,可以使用C语言编写一个计算器程序,能够实现加、减、乘、除等混合运算。下面是一个简单的示例程序:```c include <stdio.h> int main() { char operator;double num1, num2, result;printf("Enter an operator (+, -, *, \/): ");scanf("%c", &operator);printf("Enter two num...

用C语言编写一个简单的计算器1
char ch; \/\/操作 double ret = 0; \/\/结果 printf( "输入第一个数:" );scanf( "%lf", &num1 );printf( "输入第二个数:" );scanf( "%lf", &num2 );printf( "操作[+ - * \/]:" );getchar();scanf( "%c", &ch ); switch( ch ) { case '+':ret = ...

请问怎么用c语言写一个可以实现加减乘除四则运算的计算器!
char *c, int j, int k){ int l = 0; for (int o=0; o<=k; o++) { if (c[o] == '+') i[l+1] = i[l] + i[l+1]; else i[l+1] = i

用C语言编写可以进行加减乘除整数运算混合运算的计算器,要求写思路,越...
用C语言编写可以进行加减乘除整数运算混合运算的计算器,要求写思路,越详细越好,初学者,不要很复杂的。200 实现整数的算术运算(加、减、乘、除)。程序只接受界面上显示的字符输入。用户每按一个数值或一个运算符后按回车键,最后用户按=键后输出运算结果。运算需先乘除后加减。输入时要检查... 实现整数的算术...

怎样用c语言编一个简单的计算器?最简单的
\/\/简单计算器,含加减乘除、乘方运算。 #include<string.h> #include<ctype.h> #include<malloc.h> \/\/ malloc()等 #include<limits.h> \/\/ INT_MAX等 #include<stdio.h> \/\/ EOF(=^Z或F6),NULL #include<stdlib.h> \/\/ atoi() #include<io.h> \/\/ eof() #include<math.h> \/\/ floor(),ceil(...

C语言作业,编写一个简单的计算器,实现加减乘除运算,谢谢大家
return 0;}int switchs(double a,double b,char s){ switch (s){case '+':{cls();printf("a+b\\n"); Sleep(500);printf("=%0.3lf+%0.3lf\\n",a,b);Sleep(500);printf("=%0.3lf\\n\\007",a+b);Sleep(500);}break;case '...

C语言用if语句写一个+-*\/计算器
float x,y;char op;printf("enter x,opration &y:");scanf("%f%c%f,",&x,&op,&y);\/\/用户在输入时不用加空格 if(op=='+'){ printf("%.2f%c%.2f=%.2f\\n",x,op,y,x+y);} else if(op=='-'){ printf("%.2f%c%.2f=%.2f\\n",x,op,y,x-y);} else if(op=='...

用C语言设计一个简单计算器
scanf("%d%d",&i,&j);//输入要计算的数值 switch(select){ case1:printf("%d+%d=%d\n",i,j,num=i+j);//实现加法功能 break;case2:printf("%d-%d=%d\n",i,j,num=i-j);//实现减法功能 break;case3:printf("%d*%d=%d...

利用C语言,设计开发一个“简单计算器”提供加减乘除运算功能
退出系统你手动关闭行不?#include<stdio.h> void main(){int a,b,c;char d;do {printf("输入:");scanf("%d%c%d",&a,&d,&%b);switch(d){case'+':c=a+b;printf("%d+%d=%d",a,b,c);\\*后面的一样*\/default:printf("错误)";}}while(1);} ...

相似回答