PDA

View Full Version : سوال: نحوه جمع دو عدد خيلي بزرگ با استفاده از آرايه



dezchilds
یک شنبه 13 آذر 1390, 14:53 عصر
سلام دوستان كد زير رو ببينيد


#include<iostream.h>
#include<conio.h>
int main()
{
clrscr();
long int a1[20],a2[20],a3[20];
long int i1=0,i2=0,i3=0,j=10;
cout<<"Enter Your Frist Array Numbers"<<"\n";
cin>>i1;
//cout<<"Enter Your Secound Number";
//cin>>i2;

for (int i=0; i<20; i++)
{
a1[i]=i1%10;
i1=i1/10;
}
for (int j2=0; j2<20; j2++)
cout <<a1[j2];
getch();
return 0;
}



دوستان من برنامه اي ميخوام كه دو عدد 20 رقمي رو از كاربر بگيره و رقم به رقمش رو تو خونه هاي دوتا آرايه قرار بده سپس دوتا آرايه رو جمع ميكنم و پس از انجام عمليات Carry چاپش ميكنم ولي همين اول كار يه مشكلي هست الان عددي كه ميخوام بگيرم حتي تو Long int هم جا نميشه چاره چيه ؟

سید امیر حسین
یک شنبه 13 آذر 1390, 15:55 عصر
سلام
دوست عزیز تو تایپک قبلی هم در باره ی همین سوال داشت بحث میشد بی مورد ایجاد تایپک جدید نکنید
شما باید هر رقم خودتونو یکی از اعضای آرایه در نظر بگیرید
مثلا اگر عدد شما 20 رقمی باشه میتونید یه آرایه با 20 عضو تعریف کنید که هر عضو یه رقم رو بر عهده بگیره بعد اعضای آرایه رو با هم جمع میکنید و سپس چاپش میکنید

BeginnerProgrammer
یک شنبه 13 آذر 1390, 15:59 عصر
میتونی عددها رو به صورت کاراکتر کاراکتر از ورودی بگیری و تو یه آرایه ذخیره کنی مثلاً



int num1[20];
char c;
for(int i=0;i<20;i++)
{
c=getchar();
num1[i]=c-48;
}

dezchilds
چهارشنبه 16 آذر 1390, 11:19 صبح
میتونی عددها رو به صورت کاراکتر کاراکتر از ورودی بگیری و تو یه آرایه ذخیره کنی مثلاً



int num1[20];
char c;
for(int i=0;i<20;i++)
{
c=getchar();
num1[i]=c-48;
}
سلام اگه ميشه يكم بيشتر توضيح بديد .

BeginnerProgrammer
چهارشنبه 16 آذر 1390, 12:38 عصر
کد بالا فقط 20 کاراکتر که همون ارقامی که میگیره که به صورت کاراکتر هستند برای تبدیل این کاراکترها به ارقام متناظر با اونها باید عدد 48 رو از کد اسکی کم کنیم.
نمیدونم توضیحات مفهوم بود یا نه؟؟؟

dezchilds
چهارشنبه 16 آذر 1390, 17:31 عصر
سلام بله مفهوم بود ولي يه سوال تو اين كد چطوري اعداد به صورت تك تك داخل آرايه قرار داده ميشن ؟ و چرا 48 ؟

BeginnerProgrammer
چهارشنبه 16 آذر 1390, 18:21 عصر
c=getchar() این خط یه کاراکترو میگیره و c-48معادل عددیه کارکتریه که کاربر وارد کرده که تویه آرایه ذخیره میکنیم num[i] . که شمارنده حلقه for تا 20 میره چون گفتین میخواین اعداد 20 رقمیو باهم جمع کنید.
(برای تبدیل کاراکتر به int باید عدد 48 از کاراکتر کم کنیم)

mhzarei76
یک شنبه 13 دی 1394, 08:50 صبح
سلام بهترین کار این است از رشته تعریف کنی خیلی راحته اگه عدد شما 100 تایی هم باشه مشکلی نداره من یک پست واسه همین مطلب قرار دادم میتونی ببینی:لبخندساده: