نمایش نتایج 1 تا 9 از 9

نام تاپیک: خواندن یک عدد 100 رقمی از ورودی و قرار دادن ان در یک ارایه 100 رقمی !

  1. #1

    Question خواندن یک عدد 100 رقمی از ورودی و قرار دادن ان در یک ارایه 100 رقمی !

    نیاز دارم تا یک عدد 100 رقمی رو از ورودی بخونم و بعد هر رقم اون رو به ترتیب ورودی در یک ارایه صحیح 100 عنصری بریزم و البته نمی خوام که این اعداد رو یکی یکی بخونم بلکه قصد دارم همه رقم ها رو یک جا وارد کنم بعد enter کنم !

    مثلآ به چیزی مثل تابع cin.get که رشته ورودی رو کاراکتر به کاراکتر میخونه نیاز دارم با این تفاوت که اعداد صحیح بازه 0 تا 9 رو یکی یکی بتونه بخونه و اون رو در متغیر مربوطه قرار بده.

    ایا چنین تابعی وجود داره ؟ یا راه حل دیگه ای برای اینکار وجود داره ؟

  2. #2

    نقل قول: خواندن یک عدد 100 رقمی از ورودی و قرار دادن ان در یک ارایه 100 رقمی !

    سوال شما یه خرده مبهمه ولی اگه منظورتونو درست فهمیده باشم،
    بابت پاسختون بسیار ممنونم. در مورد مشکلی که داشتم بهتره اینطور توضیح بدم که بنده قصد داشتم تا یک ارایه یک بعدی 100 عضوی رو از طریق ورودی مقدار دهی کنم و لازم بود که این مقدارها بین 0 تا 9 باشند و البته قصد نداشتم که مقدارها رو یکی یکی وارد کنم و هر بار مجبور باشم که enter کنم !

    در عمل مثل این میمونه که دارم یک عدد 100 رقمی رو وارد می کنم ولی میخواستم که برنامه این اعداد رو یکی یکی بخونه و در ارایه بریزه که فکر کنم با الگوریتم شما این امر امکان پذیر باشه ، البته هنوز تستش نکردم ولی بعد از تست حتمآ جوابش رو اینجا می نویسم.

    در ضمن لطفآ در باره خط پنجم یه توضیحی بدید که چرا از 3 نگهبان استفاده کردید ؟ و این که مقادیر 0 ، 13 ، 10 چه چیزی رو کنترل می کنند ؟ خط جدید یا فاصله یا ... ؟ ایا این اعداد کد اسکی هستند یا مقدارهای صحیح ؟

  3. #3

    نقل قول: خواندن یک عدد 100 رقمی از ورودی و قرار دادن ان در یک ارایه 100 رقمی !

    اگه منظورتون اينه كه يك عدد صد رقمي رو توي يه آرايه ي صد عضوي بريزه ولي كل آرايه رو يك جا دريافت كنه:


    int main()
    { int n;
    int a[100];
    cin>>n;
    for(int i=0;i<100;i++)
    {
    a[i]=n%10;
    n/=10;
    }
    for (int i=99;i>=0;i--)
    cout<<a[i]<<endl;
    getch();
    }


    در ضمن 0 كد اسكي پايان رشته 10 كد اسكي خط جديد و 13 باعث مي شه اشاره گر برگرده به ابتداي خط و بقيه اطلاعات رو از اونجا بنويسه.

  4. #4

    نقل قول: خواندن یک عدد 100 رقمی از ورودی و قرار دادن ان در یک ارایه 100 رقمی !

    queen-mm ممنون از توضیحاتت ولی فکر نمی کنم که نوع int گنجایش اعداد 100 رقمی رو داشته باشه ! تست کنید !

  5. #5

    نقل قول: خواندن یک عدد 100 رقمی از ورودی و قرار دادن ان در یک ارایه 100 رقمی !

    نقل قول نوشته شده توسط pckho0r مشاهده تاپیک
    queen-mm ممنون از توضیحاتت ولی فکر نمی کنم که نوع int گنجایش اعداد 100 رقمی رو داشته باشه ! تست کنید !
    البته كه نداره.دقت نكردم منظورت 100 رقميه.فكر كردم منظورت عدد تا 100 هستش.ببنين منظورت اينه؟

    int main()
    {
    char a[100];
    cin.getline(a,100);

    for (int i=0;i<=99;i++)
    cout<<a[i]<<endl;
    getch();
    }

  6. #6
    کاربر دائمی آواتار shask00l
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    روی پاهای خودم
    سن
    38
    پست
    387

    Red face نقل قول: خواندن یک عدد 100 رقمی از ورودی و قرار دادن ان در یک ارایه 100 رقمی !

    نقل قول نوشته شده توسط pckho0r مشاهده تاپیک
    نیاز دارم تا یک عدد 100 رقمی رو از ورودی بخونم و بعد .........
    سلام
    با توجه به توضیحاتی که دادید فکر کنم دارید برنامه ی جمع عددی و اعمال ریاضی روی رشته رو مینویسید . اگه اینجوریه ...... نیاز نیست که حتما اعداد رو تک تک بگیرید . یه تابع برای مثلا جمع بنویسید که دوتا رشته بگیره . بعد چک کنه که اون دوتا رشته محتوی چیز دیگه ای بغیر از عدد نباشن. بعد از انتها رقم به رقم با هم جمع بزنه . اگه یه خورده به هم ریخته توضیح دادم میبخشید .

    پیروز باشید

  7. #7

    نقل قول: خواندن یک عدد 100 رقمی از ورودی و قرار دادن ان در یک ارایه 100 رقمی !

    نقل قول نوشته شده توسط shask00l مشاهده تاپیک
    سلام
    با توجه به توضیحاتی که دادید فکر کنم دارید برنامه ی جمع عددی و اعمال ریاضی روی رشته رو مینویسید . اگه اینجوریه ...... نیاز نیست که حتما اعداد رو تک تک بگیرید . یه تابع برای مثلا جمع بنویسید که دوتا رشته بگیره . بعد چک کنه که اون دوتا رشته محتوی چیز دیگه ای بغیر از عدد نباشن. بعد از انتها رقم به رقم با هم جمع بزنه . اگه یه خورده به هم ریخته توضیح دادم میبخشید .

    پیروز باشید
    نه بنده قصد دارم برنامه ای بنویسم که دو تا عدد 100 رقمی صحیح رو با هم جمع بزنه ، برای این کار میخوام الگوریتمی رو انتخاب کنم که اعداد رو از ورودی بگیره و اونها رو داخل ارایه بریزه بعد عناصر ارایه رو یک به یک از انتها با هم جمع کنه و در ارایه سوم بریزه و در صورت وجود رقم نقلی اون رو با خانه بعدی جمع بزنه !

    حالا اگر کسی الگوریتم ساده تری میشناسه ممنونم میشم که توضیح بده ، البته این یک تمرین دانشجویی نیست بلکه یکی از مسئله های انتهای فصل کتابی هست که در حال خوندنشم !

  8. #8

    نقل قول: خواندن یک عدد 100 رقمی از ورودی و قرار دادن ان در یک ارایه 100 رقمی !

    دوست عزيز مگه كد من خيلي سخت بود؟فقط دو خط بود!!!كد من خيلي رلحت در يك بار كل آرايه رو مي گيره.مي توني دو بار تعريفش كني و راحت خونه ها رو بخوني و هر كاري مي خواي روش انجام بدي.فكر نكنم چندان كار سختي باشه!!!

  9. #9
    کاربر دائمی آواتار shask00l
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    روی پاهای خودم
    سن
    38
    پست
    387

    Cool نقل قول: خواندن یک عدد 100 رقمی از ورودی و قرار دادن ان در یک ارایه 100 رقمی !

    مراحل کار به این صورته
    0. متغییر c=0 رو از نوع int تعریف کن
    1. رشته ی اول و دوم رو از ورودی بگیر و در str1 و str2 قرار بده //(دقت کن که گفتم رشته ..)
    2. طول رشته ی اول رو در l1 و طول رشته دوم رو در l2 قرار بده .
    3. اگر l1>l2 یک رشته به اندازه l1 بساز و str2 رو بریز توش و max رو مساوی l1 قرار بده در غیر این صورت یه رشته به اندازه l2 بساز و str1 رو بریز توش و max رو مساوی l2 قرار بده.
    31. رشته که قراره جواب توش ذخیره بشه رو به نام out و اندازه max ایجاد کن
    // خط بالا برای اینه که دوتا رشته هم اندازه باشن . دقت کن که عدد کوچکتر باید به سمت راست رشته ساخته شده اضافه بشه
    4. بلوک کد زیر رو به اندازه max تکرار کن . // با یک حلقه for که از i=max تا صفر با step منفی میره
    {
    5. اگر c=1 انگاه out(i)=out(i)+1 و c=0 //اینجا carry به جواب اضافه میشه
    6. out(i)=out(i)+str1(i)+str2(i)
    // توی خط بالا از همون نام متغییر های اولیه رشته برای محاسبات استفاده شده . توی خط 3 یک بار نامو اندازه یکی این متغییر ها تغییر کرده . من اینجا فرض کردم که فقط اندازه ی رشته ی قبلی رو افزایش دادیم و اسمش همونه
    7. اگر out(i)>10 انگاه out(i)=out(i)-10 و c=1
    }
    8. اگر c=1 آنگاه سرریز وجود دارد .

    همین . اصل نکته ی کد توی حلقه هست .
    اگر جایی نیاز به توضیح داشت بگو توضیح بدم . ضمنا اینو همین جا نوشتم . اگه خطایی داشت پیشاپیش عذر خواهی میکنم

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •