PDA

View Full Version : سوال: رفع اشکال برنامه



moh.mon
چهارشنبه 15 خرداد 1387, 21:38 عصر
من یه برنامه نوشتم که یه عدد رو به مبنای 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;
}

s++ 68-87
پنج شنبه 16 خرداد 1387, 00:18 صبح
فقط کافیه خط زیر رو تصحیح کنید


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

emad_67
پنج شنبه 16 خرداد 1387, 08:15 صبح
ضمنا اصلا نیازی به نوشتن char نیست. وقتی می نویسی: '0\' یعنی خودش یک کاراکتر هست دیگه.


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


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

moh.mon
پنج شنبه 16 خرداد 1387, 22:00 عصر
خیلی ممنون از راهنماییتون.