PDA

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



parhamm
شنبه 24 تیر 1391, 17:34 عصر
سلام به همه
من می خوام برنامه ای بنویسم که یه عدد می گیره بعد برعکسش می کنه اگر عدد با برعکسش برابر بود چاپ کنه yes
در غیر این صورت چاپ کنه no
ولی نمی دونم مشکل این برنامه کجاست
لطفا کمکم کنید
89688
89687

harani
شنبه 24 تیر 1391, 17:58 عصر
فکر کنم مشکلتان با متد زیر حل میشه :



void Checkrev(int number1,string number2){

string reverse = "";

for (int len = number2.Length - 1;len >= 0 ; len--)
{
reverse += number2.Substring(len, 1);

}

if (Int32.Parse(reverse) == number1)
MessageBox.Show("Yse");
else

MessageBox.Show("No");

}


امیدوارم موفق باشید .

ashe405
شنبه 24 تیر 1391, 18:24 عصر
سلام دوستمون درست میگن چرا از رشته و متد Substring استفاده نکردین
اینطوری نمی خواد مثل زبان سی برنامه نوشته شه

ashe405
شنبه 24 تیر 1391, 18:29 عصر
مشکل برنامتون اینه که مقدار عدد رو که همون a باشه در for اولی عوض کردین و بعد دوباره ازش استفاده کردین

parhamm
شنبه 24 تیر 1391, 22:08 عصر
نه
درواقع توی while ام wبرام مهم بود یعنی اگر کاربرعدد 125 را وارد کرد توی for ام باقی مانده 125بر 10 (یعنی عدد5) ضزب در 10 به توان w-1 می رسونم بعد می ریزم تو متغیر kوبا خود ن جمع می کنه ولی همرو می زنه no
توی عکس که آپلود کردم توی for ام نوشتم i++ ولی i-- هستش
یعنی for ام این طوریه


for

(i = w; i >= 1; i--)

{

z = a % 10;

s = a / 10;

a = s;

k = k +
Math.Pow(10, i) * z;

}

Mahmoud.Afrad
یک شنبه 25 تیر 1391, 00:43 صبح
وقتی داری از تکست باکس استفاده میکنی بهترین راه معکوس کردن متن و مقایسه هست
static string reverse = null;
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text.Reverse().ToList().ForEach(ch => reverse += ch);
if (textBox1.Text == reverse)
textBox2.Text = "yes";
else
textBox2.Text = "no";

reverse = "";
reverse = null;
}

اگر هم اصرار داری از کد خودت استفاده کنی باید در به توان رساندن i رو منهای یک کنی. کد رو بهتر بنویس تا قابل فهمتر باشه مثل زیر
int remain = 1, input, temp, i = textBox1.TextLength;
input = temp = int.Parse(textBox1.Text);
double reverseOfInput = 0;
for (; i >= 1; i--)
{
remain = temp % 10;
temp = temp / 10;
reverseOfInput = reverseOfInput + Math.Pow(10, i - 1) * remain;
}
if (input == reverseOfInput)
textBox2.Text = "yes";
else
textBox2.Text = "no";
برای اینکه بتونید مشکلتون رو خودتون حل کنید مثلا در این مثال بیایید مقدار معکوس شده رو در جایی مثل یک تکست باکس برای خودتون نشون بدید تا بفهمید چه بلایی سرش اومده و رفع خطا کنید.