دوستان من ميخاستم يه كلاس طراحي كنم كه بشه بهش اعداد بزرك داد(1000 رقمي) ولي نمي دونم چرا اين همه ارور مي ده
لطفا كمكم كنيد تا اين ارورها رو تصحيح كنيم
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دوستان من ميخاستم يه كلاس طراحي كنم كه بشه بهش اعداد بزرك داد(1000 رقمي) ولي نمي دونم چرا اين همه ارور مي ده
لطفا كمكم كنيد تا اين ارورها رو تصحيح كنيم
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Last edited by mahdi7s; 19-11-2008 at 15:14.
میشه دقیقا بگی اینا چیه که نوشتی؟!
خب کدت خیلی اشکال داره...
اولین مشکلی که باید درست کنی ورودی خوندنته
باید کاراکتر به کاراکتر بری جلو.
مثلا می تونی اول با cin.get کل عدد را در آرایه ای از char بریزی اونوقت روی این آرایه for بزنی و آرایه ی int کلاس Int ت را برابر اون کنی:
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام
با توجه به كمك هاي شما اين كد رو نوشتم اما در هنگام نوشتنش سوال زير برام برام پيش اومد
--> آيا اين امكان وجود داره كه يه char رو به يه int تخصيص بديم؟(خط 26 و 27 در همين كد)
و اما من بايد چي كار كنم كه اين كد به اون كلاسي كه ميخام(اعداد بزرگ) نزديكتر بشه؟/ لطفا راهنمايي كنيد تا هر چه زودتر نوشتن اين كلاس رو تموم كنم.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کدت را خوندم.
به نظر من بهتره در کلاست یک متغیر اینت بگذاری(مثلا tool) که می گوید این عدد ما چند رقمی است.( دیگه لازم نیست این کاره بد هم بکنی :)کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای پر کردن آرایه itsBigNumber از روی آرایه ی big این کارو کن:
امیدوارم فهمیده باشی چرا این کار را کردم(نفهمیدی بپرس)کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بعد به نظر من بهتره itsBigNumber را به صورت int * نگیری و از اول طولش را مشخص کنی.
چون تو الان طولش را دقیقا اندازه ی طول عددت گذاشتی برای الان مشکلی نداره ولی اگه بخوای جمع و ضرب و از این چیزا به کدت اضافه کنی شاید تعداد ارقامش بیشتر شه.
Last edited by aryan1423; 20-11-2008 at 19:17.
دوست عزيز راهنمايي هاي شما خيلي بدردم خورد ولي من از دستور زير
سر در نميارم اين كه شما هر كاركتر رشته را منهاي كاركتر 0 مي كنيد يعني چه و دقيقا چه كاري انجام ميده؟کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و اين كه شما گفتيد نوشتن اين دستور بده!
مگه با نوشتن دستور زيرکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
فرقي داره؟(ميگه هر دوتاش يه كاراكتر را به يه itsNumber تخصيص نميده؟)کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دوست عزيز لطفا كامل و جامع و با زباني ساده به سوالاتم پاسخ بدين.
فرض کنید که کاراکتر[ big[i برابر رقم 5 باشد یعنی
مقدار اصلی داخل[ big[i برابر ASCII code رقم 5 است (یعنی '5' ) نه خود 5.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
شما با این کار[ itsBigNumber[i را برابر ASCII code رقم 5 قرار می دهید نه خود 5.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای شهود بیشتر بیشتر پیشنهاد می کنم این کد را امتحان کنید:
این کار را برای سایر ارقام غیر 5 ( 0 تا 9) نیز انجام بدهید.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حال من می گویم اگر یک char که برابر '5' است را منهای '0' کنیم خود عدد 5 که مورد نظر ماست بدست می آید.
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
باز هم میگم برای int کارهای که مربوط به char هست را انجام ندهید( مثل برابر '0\' قرار دادن یک int که به درد نمی خورد این کار برای char مفید است نه int)
Last edited by aryan1423; 21-11-2008 at 00:32.
سلام
من كاملا اينو فهميدم كه اگه مثلا '9' رو منهاي '0' كنيم مقدار 9 بدست مياد
ولي جواب اين سوال منو ندادين كه چرا وقتي يه كاركتر عدد رو منهاي كاراكتر 0 مي كنيم مقدار اون بدست مياد(وقتي كاركتر را منهاي صفر مي كنيم چه اتفاقي مي افته كه باعث ميشه خود عدد بدست بياد)
اگه خودت یکم بررسی می کردی به راحتی می فهمیدی چرا.
همان طور که گفتم '5' همان ASCII code رقم 5 است. و وقتی یک int را برابر '5' قرار می دهی:
با این کار متغیر int ما برابر ASCII code رقم 5 میشود نه خود 5.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ASCII code ارقام 0 تا 9 ('0' تا '9') اعدادی به ترتیب از 48 تا 57 هستند:
پس '0'-'9' یعنی48-57 که برابر 9 است.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)