PDA

View Full Version : دو برابر کردن یک عدد یک رقمی با کارکتر ها



aali361
یک شنبه 07 اردیبهشت 1393, 20:00 عصر
سلام . من میخوام اعداد یک رقمی یعنی صفر تا 9 رو دوبرابر کنم اما این برنامه ایی که نوشتم فقط 0تا 4 جواب میده . کسی پیشنهادی داره ؟

#include <iostream>using namespace std;
int main()
{
char c;
int a,ch;
c = cin.get();
a = (c - 48) * 2;
ch = a+48 ;
cout.put(ch);

system("pause");
}

parvizwpf
یک شنبه 07 اردیبهشت 1393, 20:04 عصر
چرا 0 تا 4 رو حواب میده مشکلت کجاست؟

aali361
یک شنبه 07 اردیبهشت 1393, 20:19 عصر
چرا 0 تا 4 رو حواب میده مشکلت کجاست؟
چون مثلا شما اگه 5 رو بدی دو برابرش میشه 10 و بعد با 10+48 میشه 58 و میاد کد 58 که : هست رو نشون میده اما باید 10 رو نشون بده

motherboard
یک شنبه 07 اردیبهشت 1393, 20:23 عصر
چرا لقمه رو دور سرت می چرخونی و بعدش می خوری!!!!!!
به جای استفاده از ارزش صحیح کاراکتر و عملیات روی اون از کد ساده زیر که از ورودی از نوع صحیح هست استفاده کن:

#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int x;
cin>>x;
if(x>=0 && x<=9 )
cout<<x*2;
else
cout<<"error";
getch();
}

parvizwpf
یک شنبه 07 اردیبهشت 1393, 20:24 عصر
چرا if نمیذازی چک کنی زیر 5 یه جور بشه و بالای اون یه جور دیگه

aali361
یک شنبه 07 اردیبهشت 1393, 21:36 عصر
چرا لقمه رو دور سرت می چرخونی و بعدش می خوری!!!!!!
به جای استفاده از ارزش صحیح کاراکتر و عملیات روی اون از کد ساده زیر که از ورودی از نوع صحیح هست استفاده کن:

#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int x;
cin>>x;
if(x>=0 && x<=9 )
cout<<x*2;
else
cout<<"error";
getch();
}


داداش . استاد که این حرف ها حالیش نیست . نباید از اینتیجر استفاده شه.:لبخند:

aali361
یک شنبه 07 اردیبهشت 1393, 21:40 عصر
چرا if نمیذازی چک کنی زیر 5 یه جور بشه و بالای اون یه جور دیگه

مثلا چه جوری؟

#include <iostream>using namespace std;int main()
{
char c;
int a,ch;
c = cin.get();
a = (c - 48) * 2;
if (a<10);
ch = a+48 ;
cout.put(ch);
else


????

system("pause");

rahnema1
یک شنبه 07 اردیبهشت 1393, 22:31 عصر
این جور هم میشه

#include <iostream>
using namespace std;
int main()
{
char a,c;
c = cin.get();
a = (c - 48) * 2;
cout.put(a/10+48);
cout.put(a%10+48);
system("pause");
}

aali361
یک شنبه 07 اردیبهشت 1393, 22:57 عصر
این جور هم میشه

#include <iostream>
using namespace std;
int main()
{
char a,c;
c = cin.get();
a = (c - 48) * 2;
cout.put(a/10+48);
cout.put(a%10+48);
system("pause");
}


ممنون . با کمی ویرایش :
#include <iostream>using namespace std;
int main()
{
char c;
int a, ch, b, d;
c = cin.get();
a = (c - 48) * 2;
if (a / 10 == 0)
{


ch = a + 48;
cout.put(ch);
}
else
{
b = a / 10;
d = a % 10;
cout.put(b + 48);
cout.put(d + 48);
}




system("pause");
}