این برنامه هم جمع و هم تفریق رو محاسبه میکنه
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int a[20];
int b[20];
int sum[21];
int sub[20];
// مقدار دهی اولیه دو عدد با دادن مقدار 0 به رقم های آن
for(int i=0;i<20;i++)
{
a[i]=0;
b[i]=0;
}
//گرفتن عدد اول
cout<<"please enter the first number(up to 20 digit - don't press \"Enter\" after a 20 digit number ):\n\n";
char ch;
for(int i=0;i<20;i++)
{
ch=getch();
if(ch=='\r')
break;
else
{
for(int j=0;j<19;j++)
{
a[j]=a[j+1];
}
a[19]=0;
}
while(ch<'0' || ch>'9')
{
ch=getch();
}
cout<<ch;
a[19]=(int)ch-48;
}
//گرفتن عدد دوم
cout<<"\n\n\nplease enter the second number(up to 20 digit - don't press \"Enter\" after a 20 digit number ):\n\n";
for(int i=0;i<20;i++)
{
ch=getch();
if(ch=='\r')
break;
else
{
for(int j=0;j<19;j++)
{
b[j]=b[j+1];
}
b[19]=0;
}
while(ch<'0' || ch>'9')
{
ch=getch();
}
cout<<ch;
b[19]=(int)ch-48;
}
cout<<"\n\n************************************************\n\n";
//محاسبه عمل جمع
int carry=0;
int temp; // تعریف یک متغیر کمکی
for(int i=19;i>=0;i--)
{
temp=a[i]+b[i]+carry;
carry=temp/10;
sum[i+1]=temp%10;
}
sum[0]=carry;
// چاپ حاصل جمع دو عدد
cout<<" sum of 2 number= ";
int m=0;
for(int i=0;i<=20;i++)
{
if(sum[i]!=0 || m>0)
{
cout<<sum[i];
m++;
}
}
if(m==0)
cout<<"0";
//محاسبه عمل تفریق - ابتدا چک میکنیم کدام عدد بزرگتر است، عدد اول یا دوم که بدانیم کدام را باید از دیگری کم کرد
for(int i=0;i<20;i++)
{
if(a[i]>b[i])
{
ch='1'; //عدد اول از دوم بزرگتر است
break;
}
else if(a[i]<b[i])
{
ch='2'; //عدد دوم از اول بزرگتر است
break;
}
else
ch='0'; // دو عدد مساوی اند
}
if(ch=='1' || ch=='0') //اگر عدد اول از دومی بزرگتر است یا هر دو مساویند
{
carry=0;
for(int i=19;i>=0;i--)
{
if(a[i]<b[i])
{
a[i-1]=a[i-1]-1;
carry=10;
}
temp=a[i]-b[i]+carry;
sub[i]=temp;
carry=0;
}
}
else //در غیر اینصورت یعنی اگر عدد دوم از اولی بزرگتر است
{
carry=0;
for(int i=19;i>=0;i--)
{
if(b[i]<a[i])
{
b[i-1]=b[i-1]-1;
carry=10;
}
temp=b[i]-a[i]+carry;
sub[i]=temp;
carry=0;
}
}
// چاپ حاصل تفریق دو عدد
cout<<"\n\n subtract of 2 number= ";
m=0;
for(int i=0;i<20;i++)
{
if(sub[i]!=0 || m>0)
{
cout<<sub[i];
m++;
}
}
if(m==0)
cout<<"0";
cout<<"\n\n\nend.\n\n";
getch();
return 0;
}