مشاهده نسخه کامل
: مجموع ارقام را بدرستی حساب نمیکنه (سی پلاس)!
سلام
برنامه زیر قرار است یک شماره دانشجویی از کاربر بگیره و مجموع ارقامش را حساب کند و آن مجموع را به صورت زیر در خروجی چاپ کند :
دو تا مشکل دارم !
1- اینکه اگه مثلا این شماره دانشجویی را بهش بدم 8851011041 ، با اینکه مجموعش میشه 29 اون به اندازه 39 چاپ میکنه ! و تصورم اینه که اگه بین اعداد ورودی صفر باشه براش این مشکل ایجاد میشه .
خوب ببخشید دیگه سوالم خیلی ابتدایی است !
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
2- دوم اینکه اگه من این الگوریتم را از ابتدایی که ورودی را تحویل میگره داخل یه While قرار بدم برنامه اجرا میشه اما درست کار نمی کنه ! نمی دونم چرا
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برنامه دوم یه number در cin جاانداخته ام
درستش اینه
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
:11:با دمتون گرم 21 نفر فقط میان نگاه میکنند و میرند ...
کارم گیره
شرمنده شکل خروجی را فراموش کردم بگذارم !:31:
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
4 3 2 1
3 2 1
2 1
1
شرمنده یکم گنگه ..!
این شکل کلیه است و عمومیت نداره . میتونه تا 4 تکرار بشه و دوباره معکوس تا 1 بیاد خلاصه اینکه قراره یک لوزی تولید کنه !
حالا مشکل اصلی من اینه است که اگه داخل شماره دانشجویی صفر باشد درست اجرا نمیکنه . منظورم اینه که مثلا اگه عدد 8512016438 را وارد کنم خروجی درستی نمیده اما اگه همون عدد را بدون صفر بزنم به اینصورت 851216438 که در هر دو حالت مجموع میشه 38 ، اینبار خروجی درست است !
فکر کنم بشه نتیجه گرفت که مشکل از این قسمت کد باشه:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
:19:
حالا این را حل کنید تا بریم سراغ مشکل دوم !!!!!!!:10:
سلام
ببخشید این سوالی که شما پرسیدی اصلا مفهوم نیست .
قراره یه عددی از ورودی بگیره مجموع ارقامش رو نشون بده یا ارقامش رو به شکل لوزی نشون بده؟:23:
فکر کنم بشه نتیجه گرفت که مشکل از این قسمت کد باشه:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
نه به خاطر اين نيست.
وقتي عدد 8851011041 رو وارد ميكني اين مقدار بايد تويه number قرار بگيره ولي نميگيره !!!!!!
چرا رو دقيقا نميدونم . هر چي هست بر ميگرده به تعريف متغيير number. كه int تعريف كرديد.
شايد overflow ميشه ولي دقيقا نميدونم.
اين رو ببين
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
نه به خاطر اين نيست.
وقتي عدد 8851011041 رو وارد ميكني اين مقدار بايد تويه number قرار بگيره ولي نميگيره !!!!!!
چرا رو دقيقا نميدونم . هر چي هست بر ميگرده به تعريف متغيير number. كه int تعريف كرديد.
شايد overflow ميشه ولي دقيقا نميدونم.
اين رو ببين
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ممنون دوست عزیز :11:
بله حق باشماست
number را از نوع unsigned long int در نظر گرفتم تا عدد 10رقمی را بتونه جا بده تو خودش ! یعنی باید طبق قرارداد خودشون تا 2^32 را در خودش جابده که میشه یه عدد 10 رقمی !
ولی مثل اینکه اینکار را نمی تونه بکنه !
کسی نظری نداره !
به قول خودم تا 2^ 32 می تونه جابده یعنی عدد : 4294967297
نه عدد 8میلیارد !
به خاطر همین هم هست که توی سایت گلستان دیگه شماره دانشجویی ها را 9 رقمی کردند!
اینم نتیجه مشارکت :10:
ممنون دوست عزیز
:11:
اما مشکل دوم را چکارش کنم !
اینکه وقتی یه حلقه while میگذارم برنامه اجرا میشه اما درست کار نمیکنه :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اما مشکل دوم را چکارش کنم !
اینکه وقتی یه حلقه while میگذارم برنامه اجرا میشه اما درست کار نمیکنه :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حدث ميزنم از شرط حلقه باشه . احتمالا چون
شما number رو unsiged تعريف كرديد.
اون وقت شرط حلقه رو منفي داديد.
number نميتونه منفي باشه.
ali zi zeperto
05-01-2010, 20:07
اعداد بزرگ مثل شماره دانشجویی یا شماره ملی و هر چیز دیگه رو در متغیر رشته ای قرار بدید.بعد عملیات روشون انجام بدید.
برنامه دوم باید خروجی پست ۴ رو بده؟
اعداد بزرگ مثل شماره دانشجویی یا شماره ملی و هر چیز دیگه رو در متغیر رشته ای قرار بدید.بعد عملیات روشون انجام بدید.
برنامه دوم باید خروجی پست ۴ رو بده؟
سلام
می تونید کدش را برام قرار بدید ؟
منظورتون اینه که
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
میشه بگید چطور میتونم اونوقت مجموع ارقامش را حساب کنم . لطفا کدش را بگذارید . :11:
sin2x=2sinxcosx
07-01-2010, 18:15
اگه منظورتون اینه که چجور جمع اعداد داخل یه رشته رو بدست بیاریم اینه که از هر کاراکتر اگه عدد 48 رو کم کنین و تو یه int بذارین میشه عدد .
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.