#include #include using namespace std; #define max 1000 int main() { int a[200],b[200],c[200],x,y,z,flag=0;//x,y,z为长度 char a1[max],a2[max]; cout<<“请输入两个大整数:”<<endl; cout<<“第一个整数:”; cin>>a1; cout<<“第二个整数:”; cin>>a2; x=strlen(a1); y=strlen(a2); z=1; if(x>=y) { for(int i=0; i<x; i++)//被减数 { a[x-i] = a1[i]-‘0’; } for(int j=0; j<y; j++)//减数 { b[y-j] = a2[j]-‘0’; } for(int m=y+1; m<=x; m++)//减数与被减数位数不等,减数补0 { b[m]=0; } while(z<=x) { c[z]=a[z]-b[z]-flag; if(c[z]<0) { flag=1; c[z]+=10; } else { flag=0; } z++; } cout<<“两数相减的结果为:”; for(int k=z-1;k>=1;k–) //倒序输出 { cout<<c[k]; } } if(x<y) { for(int i=0; i<x; i++)//被减数 { a[x-i] = a1[i]-‘0’; } for(int j=0; j<y; j++)//减数 { b[y-j] = a2[j]-‘0’; } for(int m=x+1; m<=y; m++)//减数与被减数位数不等,减数补0 { a[m]=0; } while(z<=y) { c[z]=b[z]-a[z]-flag; if(c[z]<0) { flag=1; c[z]+=10; } else { flag=0; } z++; } cout<<“两数相减的结果为:”; cout<<"-"; for(int k=z-1;k>=1;k–) //倒序输出 { cout<<c[k]; } } cout<<endl; return 0; }