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

نام تاپیک: رفع اشکال برنامه

  1. #1
    کاربر دائمی
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    شمال
    پست
    115

    رفع اشکال برنامه

    من یه برنامه نوشتم که یه عدد رو به مبنای 2میبره ولی مشکل اینجاست که این برنامه وقتی رشته ی مورد نظر رو چاپ میکنه چند تا کاراکتر اضافی هم بعدش چاپ میکنه.
    لطفا بگین مشکل کجاست.(لطفا تابع جدید تعریف نکنین فقط بگین مشکل کجاست)
    #include <iostream.h>
    #include <conio.h>
    #include <math.h>
    #include <stdio.h>
    char* dectobin(int dec)
    {
    int i , x , s[30] , j=0;
    char* binary;
    do
    {
    x= dec % 2;
    s[j] = x;
    dec = dec/2;
    j++;
    }while (dec!=0);
    binary = new char[j];
    for (i=j-1 ; i>=0 ; i--)
    {
    binary[j-1-i]= (char)(s[i] + 48);
    }
    binary[j]=(char)("/0");
    return binary;
    }
    int main()
    {
    char* m=dectobin(9);
    cout<<m;
    getch();
    return 0;
    }

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

    نقل قول: رفع اشکال برنامه

    فقط کافیه خط زیر رو تصحیح کنید

    binary[j]=(char)('\0');

  3. #3
    کاربر دائمی
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    پست
    1,486

    نقل قول: رفع اشکال برنامه

    ضمنا اصلا نیازی به نوشتن char نیست. وقتی می نویسی: '0\' یعنی خودش یک کاراکتر هست دیگه.

    binary[j]='\0';
    همچنین در بالاتر هم میتونی char رو ننویسی:

    binary[j-1-i]=(s[i] + 48);
    چون با جمع عدد با 48 کد اسکی مربوطه به وجود میاد.

  4. #4
    کاربر دائمی
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    شمال
    پست
    115

    نقل قول: رفع اشکال برنامه

    خیلی ممنون از راهنماییتون.

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

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