PDA

View Full Version : اشکال زدایی یک کد



mornwk
یک شنبه 03 فروردین 1393, 12:46 عصر
سلام. کد زیر تعداد رقم های صحیح یک عدد رو میشماره و نمایش میده. اما فقط تا اعداد ۱۰ رقمی برنامه درست جواب میده و بالاتر از ۱۰ رقم رو ۱۰ نشون میده. لطفا راهنمایی کنید که اشکالش کجاس.


int main() {
double adad , b , d;
//adad= adade vared shode
//d= Shomarande
//b= Baghimande ye adad be 10
int c;
//c= khareje gesmate tagsim be 10
cout << "adad ra vared konid: ";
cin>> adad;
d=0;
c = adad;
while (c != 0){
b = c % 10;
c = c / 10;
d = d + 1;
}
cout << "tedad ragam haye sahih: " << d << endl;
return 0;
}

darknes666
یک شنبه 03 فروردین 1393, 20:06 عصر
سلام. کد زیر تعداد رقم های صحیح یک عدد رو میشماره و نمایش میده. اما فقط تا اعداد ۱۰ رقمی برنامه درست جواب میده و بالاتر از ۱۰ رقم رو ۱۰ نشون میده. لطفا راهنمایی کنید که اشکالش کجاس.


int main() {
double adad , b , d;
//adad= adade vared shode
//d= Shomarande
//b= Baghimande ye adad be 10
int c;
//c= khareje gesmate tagsim be 10
cout << "adad ra vared konid: ";
cin>> adad;
d=0;
c = adad;
while (c != 0){
b = c % 10;
c = c / 10;
d = d + 1;
}
cout << "tedad ragam haye sahih: " << d << endl;
return 0;
}





به این دلیل هست که یک عدد 20 رقمی رو نمیتونی تو DOUBLE بزاری.
باید از رشته استفاده کنی یا از آرایه.

mornwk
دوشنبه 04 فروردین 1393, 15:08 عصر
به این دلیل هست که یک عدد 20 رقمی رو نمیتونی تو DOUBLE بزاری.
باید از رشته استفاده کنی یا از آرایه.



darknes666 (http://barnamenevis.org/member.php?288588-darknes666) جان۲۰ رقمی نیست که.منظورتون۱۰ رقمیه؟

Nabege
دوشنبه 04 فروردین 1393, 16:39 عصر
آخه نابغه نمی دونی که محدوده متغیر c که ازنوع اینته از -2.147483648 تا 2.147483648 هست.
که فقط ده رقمه.
برای اینکه مشکل حل شه یا باید متغیر c رو از نوع int64__ کنی که محدودش بیست رقمه یا باید از رشته یا آرایه استفاده کنی که کلا دیگه محدوده نداشته باشه.

mornwk
دوشنبه 04 فروردین 1393, 23:23 عصر
آخه نابغه نمی دونی که محدوده متغیر c که ازنوع اینته از -2.147483648 تا 2.147483648 هست.
که فقط ده رقمه.
برای اینکه مشکل حل شه یا باید متغیر c رو از نوع int64__ کنی که محدودش بیست رقمه یا باید از رشته یا آرایه استفاده کنی که کلا دیگه محدوده نداشته باشه.

ممنون از راهنماییتون. فقط منظورتون از نابغه رو متوجه نشدم!!!

Nabege
سه شنبه 05 فروردین 1393, 09:53 صبح
شوخی می کردم منظورم این بود که خیلی نابغه ای که این نکته رو نفهمیدی!