PDA

View Full Version : یکی اشکال این برنامه رو بگه



faezeahadi
جمعه 10 آذر 1391, 12:47 عصر
این برنامه یه عدد میگیده و برعکسش رو چاپ میکنه ولی عدد بزرگ که میگیره اشتباه ج میده



#include<iostream.h>
#include<conio.h>
void main()
{
int a;
cout<<"Enter the no:";
cin>>a;
while(a!=0)
{
cout<<a%10;
a=a/10;
}
getch();
}

omidshaman
جمعه 10 آذر 1391, 12:55 عصر
خوب اون int محدودیت دریافت عدد داره مثلا بجاش بزار unsigned long long که خوب البته اینم بازم محدودیت داره اگر بخوای بزرگتر وارد کنی میتونی به صورت String عدد رو بگیری


:

signed char: -127 to 127 (note, not -128 to 127; this accommodates 1's-complement platforms)
unsigned char: 0 to 255
"plain" char: -127 to 127 or 0 to 255 (depends on default char signedness)
signed short: -32767 to 32767
unsigned short: 0 to 65535
signed int: -32767 to 32767
unsigned int: 0 to 65535
signed long: -2147483647 to 2147483647
unsigned long: 0 to 4294967295
signed long long: -9223372036854775807 to 9223372036854775807
unsigned long long: 0 to 18446744073709551615

مسعود اقدسی فام
جمعه 10 آذر 1391, 12:58 عصر
یه بار قبلا همین دیروز پریروز این سوال رو نپرسیده بودید؟ یا همکلاسی بود؟

دقیقا همینجوری یکی جواب داد که int محدود هستش و بعد من گفتم اگه صرفا معکوس کردن مهمه میتونی از رشته هم استفاده کنی که کلا محدودیت طول نداشته باشی.

omidshaman
جمعه 10 آذر 1391, 13:01 عصر
مثلا این جوری

#include<iostream>
using namespace std;
int main()
{
string a;
cout<<"Enter the no:";
cin>>a;
int i=a.size()-1;
while(a[i]!=0)
cout<<a[i--];

cin.get();
}

مسعود اقدسی فام
جمعه 10 آذر 1391, 13:14 عصر
این شرط ادامه حلقه معنیش چیه؟ i>=0 نباید باشه؟

omidshaman
جمعه 10 آذر 1391, 13:46 عصر
این شرط ادامه حلقه معنیش چیه؟ i>=0 نباید باشه؟
اره حق با شماست :) حواسم به این که از اخر به اول میایم نبود

#include<iostream>
using namespace std;
int main()
{
string a;
cout<<"Enter the no:";
cin>>a;
int i=a.size();
while(i--)
cout<<a[i];
cin.get();
}

faezeahadi
یک شنبه 12 آذر 1391, 15:35 عصر
به جاش string نوشتم ارور میده
میشه همون برنامه منو با string بنویسید
اینی که شما نوشتید چطوری Mod و div رو حساب منکنه؟

omidshaman
یک شنبه 12 آذر 1391, 20:07 عصر
به جاش string نوشتم ارور میده
میشه همون برنامه منو با string بنویسید
اینی که شما نوشتید چطوری Mod و div رو حساب منکنه؟
به خاطر کمپایلر قدیمیتونه که ارور میده یک .h بزار اخر iostream خط 2 رو هم پاک کن
و این نیازی به div و mod نداره این برنامه یک عدد یا یک متن رو می گیره از اخر به اول چاپ می کنه به همین سادگی!