PDA

View Full Version : سوال: حذف دو عدد اول و آخر یک عدد هشت رقمی؟



reza4359
یک شنبه 18 تیر 1391, 21:36 عصر
سلام دوستان من میخوام روش میان ضربی رو با #c پیاده سازی کنم یعنی دو رقم اول و آخر یک عدد چند رقمی رو حذف کنم حالا باید چطوری این کار رو انجام بدم؟
ممنون

mp_mp353
یک شنبه 18 تیر 1391, 22:03 عصر
خوب نمیدنم منظور شما رو درست گرفتم یا نه
ببین کد زیر به دردت میخوره یا نه
int a=0,n = int.Parse(Console.ReadLine());
while (n!=0)
{
if (n <= 999999 && n > 9)
{
a = (a * 10) + (n % 10);
n /= 10;
}
else
{
n /= 10;
}
}
n = 0;
while (a!=0)
{
n = (n * 10) + (a % 10);
a /= 10;
}
Console.Write(n.ToString());
Console.ReadLine();

hamed_hossani
یک شنبه 18 تیر 1391, 22:04 عصر
سلام
شما تبدیل به رشته کنید
int number=1232132;
string numberStr=number.toString();

بعد با متد subString تکه تکه اش کنید
string str2=numberStr.subString(0,2);

mp_mp353
یک شنبه 18 تیر 1391, 22:04 عصر
خروجی برای 12345678 میشه 23456

منظورت همین بود؟

mp_mp353
یک شنبه 18 تیر 1391, 22:11 عصر
البته این شکلی هم میشه نوشت:
int n = int.Parse(Console.ReadLine());
string s = n.ToString();
s = s.Remove(0,1);
s = s.Remove(5, 2);
Console.Write(s);
Console.ReadLine();

hamed_hossani
یک شنبه 18 تیر 1391, 22:17 عصر
سلام
شما تبدیل به رشته کنید
int number=1232132;
string numberStr=number.toString();

بعد با متد subString تکه تکه اش کنید
string str2=numberStr.subString(0,2);

reza4359
دوشنبه 19 تیر 1391, 00:36 صبح
خوب نمیدنم منظور شما رو درست گرفتم یا نه
ببین کد زیر به دردت میخوره یا نه
int a=0,n = int.Parse(Console.ReadLine());
while (n!=0)
{
if (n <= 999999 && n > 9)
{
a = (a * 10) + (n % 10);
n /= 10;
}
else
{
n /= 10;
}
}
n = 0;
while (a!=0)
{
n = (n * 10) + (a % 10);
a /= 10;
}
Console.Write(n.ToString());
Console.ReadLine();
ممنون دوست عزیز ولی یک رقمش اضافست یعنی باید اینو بده
3456
و اون 2 اولش اضافست
حالا باید چکار کرد؟

Mahmoud.Afrad
دوشنبه 19 تیر 1391, 05:09 صبح
سلام
نیاز به حلقه نیست.
همونطور که دوستان گفتند از متد substring استفاده کنید. برای چیزی که شما میخواهید باید از اندیس 2 شروع بشه به اندازه 4واحد کمتر از طول رشته جداسازی صورت بگیره. اگر هم متغیر عددی هست اول به رشته تبدیل کنید بعد استفاده کنید
if (textBox1.TextLength >= 4)
textBox2.Text = textBox1.Text.Substring(2, textBox1.TextLength - 4);

BehinAfzar
دوشنبه 19 تیر 1391, 07:26 صبح
سلام
int a = 0,k=1, n = int.Parse(Console.ReadLine());
n /= 100;
while (n >100)
{
a = a + (n % 10)*k;
k = k * 10;
n /= 10;
}
Console.Write(a.ToString());
Console.ReadLine();
این قطعه کد رو در صورتی نوشتم که عدد ورودی بزرگتر از صد باشه خودت میتونی شرط براش بزاری
اگه سوالی بود در خدمتیم

mp_mp353
دوشنبه 19 تیر 1391, 10:03 صبح
به این شکل بنویس درست میشه
int a = 0, n = int.Parse(Console.ReadLine());
while (n >99)
{
if (n <= 999999)
{
a = (a * 10) + (n % 10);
n /= 10;
}
else
{
n /= 10;
}
}
n = 0;
while (a != 0)
{
n = (n * 10) + (a % 10);
a /= 10;
}
Console.Write(n.ToString());
Console.ReadLine();
ویا این رو
int n = int.Parse(Console.ReadLine());
string s = n.ToString();
s = s.Remove(0, 2);
s = s.Remove(4, 2);
Console.Write(s);
Console.ReadLine();

mp_mp353
دوشنبه 19 تیر 1391, 10:06 صبح
البته کد آقای BehinAfzar خلاصه تر همین کد هست شما متونید از کد آقای BehinAfzar هم استفاده کنید و در شرط حلقه بنویسید
while (n >99)
یا
while (n >=100)

FastCode
دوشنبه 19 تیر 1391, 11:14 صبح
شوخی میکنید دیگه؟
int R, L = 12345678;
bool Neg=L<0;
if (Neg) L = -L;
if ((L > 9999999) && (L < 100000000))
{
if (Neg) L = -L;
R = (L / 100) % 100000;
}
else
R= -1;
اگر اعداد منفی براتون مهم نیست فقط خطوط ۱ ۴ ۷ ۹ و ۱۰ رو نیاز دارید.

#include <stdlib.h>
int main(int argc, char** argv){
return (atoi(argv[1]) / 100) % 100000;
}