PDA

View Full Version : سوال: ارقام تکراری یک عدد



yasamin gol
جمعه 20 آذر 1388, 23:39 عصر
با عرض سلام
اگه تو برنامه از ما خواسته بود که یک عدد دریافت کند در صورتیکه در عدد ارقام تکراری وجود داشته باشدآن عدد و تعداد تکرار آن را چطور مشخص میکنیم.
ممنون میشم کمکم کنید تا برنامشو بنویسم.

بانوی ایران
جمعه 20 آذر 1388, 23:50 عصر
سلام
با استفاده از ارايه اينجوري ميشه(تو پست بعد زدم)

كامل نيست


خودت كاملش كن:چشمک:










اولش يه
int digitseen[10], digit, n;بزار

yasamin gol
شنبه 21 آذر 1388, 01:42 صبح
ممکنه یه بار دیگه با فونت بالاتر بنویسید
اصلأ مشخص نیست که چی نوشتین
ممنون:متفکر:

yasamin gol
شنبه 21 آذر 1388, 01:43 صبح
در ضمن میشه تو زبان c++ بهم توضیح بدین؟

بانوی ایران
شنبه 21 آذر 1388, 01:45 صبح
من cpp بلد نيستم ولي فونت رو بزرگ كردم

بانوی ایران
شنبه 21 آذر 1388, 01:46 صبح
scanf(“%d”, &n);

do

{

digit_seen = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
while


(n > 0) {

digit = n % 10;
digit_seen[digit] += 1;
n = n / 10;
}
printf(“Input Number: %d\n”, n);
for


(digit = 0; digit <= 9; digit++) {

if


(digit_seen[digit] > 1) {

printf(“%d: %d\n”, digit, digit_seen[digit]);
}
}
scanf(“%d”, &n);
} while (n != 0);

اون درس نيست اينه

yasamin gol
شنبه 21 آذر 1388, 01:48 صبح
خوبه ممنون

yasamin gol
شنبه 21 آذر 1388, 01:50 صبح
digit_seen = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

میشه در مورد این دستور توضیح بدین!

بانوی ایران
شنبه 21 آذر 1388, 01:55 صبح
چيزي نيست فقط قبل از شروع مقدار digit seenها رو صفر ميكنه
مقدار اوليه براش ميزاره
ميتوني هم يك صفر بزاري خودش همشو صفر ميكنه

yasamin gol
شنبه 21 آذر 1388, 02:00 صبح
اگه بخواهیم بدون آرایه حل کنیم چطور ؟
من زیاد از آرایه سر در نمیارم.

بانوی ایران
شنبه 21 آذر 1388, 02:04 صبح
بدون اراي خيلي طولاني ميشه
بايد رقم رقم چك كني
يعني با modeهر رقم رو جدا كني بزاريش توي يه حلقه كه همه رقما رو چك كنه

#Elahe#
دوشنبه 23 آذر 1388, 14:50 عصر
بدون آرایه اگه بخای بنویسی باید عدد رو تقسیم بر 10 کنی که باقیمانده همون عدد یکان هست .
حالا خارج قسمت رو اگه بر 10 تقسیم کنی باقیمانده تقسیم میشه عدد دهگان عدد اولی .
همین طور اگه خارج قسمت جدید رو بر 10 تقسیم کنی رقمهای عدد یکی یکی تو باقیمانده ظاهر خواهد شد و بعد از این هم فکبر نکنم بیرون کشیدن ارقام تکراری کار مشکلی باشه .
این یه الگوریتم کلی بود .
ولی به نظر من هم با آرایه این مسائل راحتتر قابل حله !

بانوی ایران
سه شنبه 24 آذر 1388, 01:36 صبح
فهميدم چي كارش كني بيا 10 تا متغير تعريف كن به هر كدو مشونم يكي از مقادير 0 تا 9 رو انتصاب بده بعدش هم 10 تا counterتعريف كن كه مقدار اوليشون 0 باشه
عددت رو وارد كن با modeارقامش رو جدا كن بعد چك كن كه هر رقم با كدوم يك از از اعداد 0تا9 برابره با هر كدوم برابر شد به counterاو ن عدد يكي اضافه كن اخر سر هم counterهاي بزرگتر از صفر رو چاپ كن
براي اينه كه ميگم بدون ارايه سخته الان براي اين برنامه شما حداقل بايد 20 تا متغير تعريف كني و براهر كدوم يه ifبزاري كه چكش كنه
با اين حال اگر نفهميديد بگيد تا با مثال بگم
راستي الهه خانم كاري كه شما ميگي بايد برا هر عدد كه بيرون ميكشه بريزتش تويه يه متغير تا قابل دسترسي و شمردن باشه وهمچنين چك كردن اون كمي مشكل ميشهچون بايد بارقم هاي بعدي كه بيرون ميكشه چك بشه البته من روش خيلي فكر نكردم كه چجوري رقم رقم قابل حساب كردنه(بدون ارايه)چون ما نميتوني متغير هاي ثابتيتعريف كنيم و اصلا نميدونيم نياز به چند تا متغير داريم تا قبل از وارد شدنه عدد ولي فكر كنم اون راهي كه گفتم جواب بده