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

نام تاپیک: یک مشکل در تفریق دو عدد

  1. #1

    یک مشکل در تفریق دو عدد

    سلام دوستان
    یه برنامه تو c نوشتم که دو تا عدد را از هم کم میکنه دو عدد رو بصورت رشته گرفتم بعد برای اینکه به عدد تبدیل کنم هر آرایه دو عدد منهای 48 کردم .این دو شرط هم در ورود دو عدد تعریف شده یکی اینه که دو عدد باید مثبت باشند و دومی اینه که عدد اول طولش باید از عدد دوم بیشتر باشه بعد یه حلقه نوشتم نمیدونم کجاش مشکل داره ممنون میشم راهنمائی کنید. در ضمن طول عدد بزرگتر با len و اختلاف طول دو عدد با def تعریف شده .


    def=strlen(num1)-strlen(num2);
    len=(strlen(num1)>=strlen(num2) ? strlen(num1): strlen (num2));

    for(i=len-1;i>=0;--i)
    {
    if((num1[i]-48)>(num2[i-def]-48))
    result[i+1]=(num1[i]-48)-(num2[i-def]);
    else
    {
    if(i==0)
    result[i+1]=(num1[i]-48)-(num2[i-def]);
    else
    {
    if((num1[i]-48)<(num2[i-def]-48))
    result[i+1]=((num1[i]-48)+10)-(num2[i-def]-48);
    num1[i-1]=num1[i-1]-1;
    }
    }
    }

    آخرین ویرایش به وسیله farzad.sharifi : چهارشنبه 29 خرداد 1387 در 20:34 عصر

  2. #2
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1387
    پست
    59

    نقل قول: یک مشکل در تفریق دو عدد

    نفهمیدم چی شده اینجا
    ولی برای تفریق دو تا عدد که به صورت رشته گرفته شدن می تونین اونو کامل تبدیل کنین به int مثل کد زیر:


    #include <iostream.h>
    #include <string.h>
    int char2int (char* a)
    {
    int b=0;
    for(int i=0; i<strlen(a);i++)
    {
    b=(b*10)+a-48;
    }
    return b;
    }
    int main()
    {
    char a[5]="123";
    cout<<char2int (a);
    return 0;
    }

    و بعد دو تا عدد رو تفریق کنین اخرشم حاصل تفریق رو به رشته تبدیل کنین برای تبدیل به رشته باقی مانده عدد به 10 رو یکی یکی تو یه رشته ذخیره کنین برای مثال 123

    123%10=3
    123/10=12
    12%10=2
    12/10=1
    1%10=1
    [i]

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

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