急求!!怎么用c++实限计算器能输出无限位数,只要简单实现加、减、乘、就好。如324132432435452542X31344

急求!!怎么用c++实限计算器能输出无限位数,只要简单实现加、减、乘、就好。如324132432435452542X31344,第1张

这是本人写的程序:只处理正整数,负数的运算变换下即可。

#include<iostream>

using namespace std;

// *** 作数和结果的位数还可以任意加,理论上可以处理无限位。(只要内存无限大!!!)

char num1[100]; //第一个 *** 作数

char num2[100]; //第二个 *** 作数

char result[200];//结果

//自定义加法函数

void add(char s1,char s2)

{

int i,j,n=0;

for(i=strlen(s1)-1,j=strlen(s2)-1;i>=0 && j>=0;i--,j--)

result[n++]=s1[i]+s2[j]-'0';

if(i>=0)

while(i>=0)

result[n++]=s1[i--];

if(j>=0)

while(j>=0)

result[n++]=s2[j--];

//处理进位问题

for(i=0;i<n;i++)

if(result[i]>'9')

{

result[i]-=10;

result[i+1]+=1;

}

//将结果逆序

char temp;

for(i=0;i<n/2;i++)

{

temp=result[n-1-i];

result[n-i-1]=result[i];

result[i]=temp;

}

result[n]='\0';

}

//自定义减法函数

void minus(char s1,char s2)

{

int i,j,n=0,flag=0;

char temp[100];

//如果s1<s2,则交换s1和s2

if(strlen(s1)<strlen(s2) || (strlen(s1)==strlen(s2) && strcmp(s1,s2)<0))

{

flag=1;

strcpy(temp,s1);

strcpy(s1,s2);

strcpy(s2,temp);

}

for(i=strlen(s1)-1,j=strlen(s2)-1;j>=0;i--,j--)

result[n++]=s1[i]-s2[j]+'0';

while(i>=0)

result[n++]=s1[i--];

//处理借位问题

for(i=0;i<n;i++)

if(result[i]<'0')

{

result[i]+=10;

result[i+1]-=1;

}

//去掉高位的0

while(result[n-1]=='0' && n!=1)

n--;

if(flag==1)

result[n++]='-';

//将结果逆序

char ch;

for(i=0;i<n/2;i++)

{

ch=result[n-1-i];

result[n-i-1]=result[i];

result[i]=ch;

}

result[n]='\0';

}

//自定义乘法函数

void multiple(char s1,char s2)

{

int i,j,n;

int a[200]={0};

for(i=strlen(s2)-1;i>=0;i--)

{

n=strlen(s2)-1-i;

for(j=strlen(s1)-1;j>=0;j--)

a[n++]+=(s2[i]-'0')(s1[j]-'0');

}

for(i=0;i<n;i++)

{

if(a[i]>9)

{

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

a[i]%=10;

}

}

if(a[n]!=0)

n+=1;

for(i=0;i<n;i++)

result[i]=a[i]+'0';

//将结果逆序

char ch;

for(i=0;i<n/2;i++)

{

ch=result[n-1-i];

result[n-i-1]=result[i];

result[i]=ch;

}

result[n]='\0';

}

void main()

{

char ch;

while(true)

{

memset(result,0,200);

cout<<"输入运算符(+,-,):"<<endl;

cin>>ch;

cout<<"输入第一个 *** 作数:"<<endl;

cin>>num1;

cout<<"输入第二个 *** 作数:"<<endl;

cin>>num2;

switch(ch)

{

case '+':

add(num1,num2);

break;

case '-':

minus(num1,num2);

break;

case '':

multiple(num1,num2);

break;

default:

cout<<"输入错误"<<endl;

break;

}

cout<<"运算结果:\n"<<result<<endl;

cout<<"是否继续运算(Y/N)"<<endl;

cin>>ch;

if(ch!='Y' && ch!='y')

break;

}

}

在word里面能够实现
用“拼音指南”功能
比如要输入循环小数13(3循环)时,方法如下
1 在Word文档中输入“13”,选中数字“3”。
2 在“格式”菜单中,指向“中文版式”,单击“拼音指南”。
3 单击“3”后面的“拼音文字”下的方框,然后切换到你习惯使用的中文输入法,右键单击输入法状态条右端的软键盘按钮,单击“标点符号”,打开标点符号软键盘。
4 在标点符号软键盘,单击数字9键,输入间隔符“·”,然后单击软键盘按钮,关闭软键盘。
5 在“字号”框中选择一个合适的字号,注意字号过小在文档中将看不到添加的间隔符,单击〔确定〕按钮。


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

原文地址:https://54852.com/yw/13161651.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-30
下一篇2025-08-30

发表评论

登录后才能评论

评论列表(0条)

    保存