PDA

View Full Version : سوال: مرتب سازی عدد



bmd007
سه شنبه 28 آبان 1392, 21:07 عصر
سلام و خسته نباشید خدمت همه ی دوستان
می خواهیم یه عدد از کاربر بگیریم و در خروجی ارقام عدد رو به صورت نزولی چاپ کنیم
به نظرم می تونیم عدد رو داخل ارایه ریخت و ارایه ی مرتب کنیم و چاپش کنیم ولی برای این کار به تعداد ارقام عدد نیاز داریم
میشه لطفا راهنمایی کنید که چطوری این مشکل را حل کنیم
یا اینکه جواب مسئله بدون استفاده از ارایه رو بیان منید
البته c++

rahnema1
سه شنبه 28 آبان 1392, 21:37 عصر
چون ارقام مجزای اعداد دهدهی برابر با 10 است لازمه یک آرایه با طول 10 درست کنید و هر گاه رقم ورودی کاربر مساوی یکی از اعداد 0 تا 9 بود مقدار آرایه با اندکس مورد نظر رو بعلاوه یک کنید
مثلا رقم ورودی 5 بود عضو پنجم آرایه را بعلاوه 1 می کنیم
نهایتا از عنصر نهم شروع می کنیم به تعداد اندازه عنصر نهم عدد 9 چاپ می کنیم
به تعداد اندازه عنصر هشتم ..
....

aminsaeedi
سه شنبه 28 آبان 1392, 22:47 عصر
میشه لطف کنید بیشتر توضیح بدهید من یکم گیج شدم البته شاید دوست عزیز متوجه شده باشند !!!

اگر برای من هم ...

rahnema1
سه شنبه 28 آبان 1392, 23:55 عصر
میشه لطف کنید بیشتر توضیح بدهید من یکم گیج شدم البته شاید دوست عزیز متوجه شده باشند !!!

اگر برای من هم ...

ببینید مثلا عدد 30301348 را در نظر بگیرید حالا من کار ندارم به اینکه چه جوری رقمهای این عدد رو می خواهیم تفکیک کنیم که ممکنه با روشهای مختلف بشه اگه بخواهید توضیح بدم
فرض من اینه که رقمها رو بصورت مجزا تفکیک کرده ایم
رقم سمت راست رو می گیریم که 8 باشه در نتیجه عنصر شماره 8 آرایه را بعلاوه یک می کنیم
عنصر شماره4 آرایه را بعلاوه یک می کنیم
عنصر شماره 3 آرایه را بعلاوه یک می کنیم
عنصر شماره 1 آرایه را بعلاوه یک می کنیم
عنصر شماره 0 آرایه را بعلاوه یک می کنیم
عنصر شماره 3 آرایه را بعلاوه یک می کنیم
عنصر شماره 0 آرایه را بعلاوه یک می کنیم
عنصر شماره 3 آرایه را بعلاوه یک می کنیم
استفاده از حلقه از 9 تا 0 :
حالا با شروع از عنصر شماره 9 آرایه شروع می کنیم هر چه مقدار اون بود به همون تعداد 9 را چاپ می کنیم:0 بار
هر چه مقدار عنصر 8 بود به همون تعداد ، عدد 8 را چاپ می کنیم : 1 بار
هر چه مقدار عنصر 7 بود به همون تعداد ، عدد 7 را چاپ می کنیم : 0 بار
هر چه مقدار عنصر 6 بود به همون تعداد ، عدد 6 را چاپ می کنیم: 0 بار
هر چه مقدار عنصر 5 بود به همون تعداد ، عدد 5 را چاپ می کنیم: 0 بار
هر چه مقدار عنصر 4 بود به همون تعداد ، عدد 4 را چاپ می کنیم: 1 بار
هر چه مقدار عنصر 3 بود به همون تعداد ، عدد3 را چاپ می کنیم :3 بار
هر چه مقدار عنصر 2 بود به همون تعداد ، عدد 2 را چاپ می کنیم: 0 بار
هر چه مقدار عنصر 1 بود به همون تعداد ، عدد 1 را چاپ می کنیم: 1 بار
هر چه مقدار عنصر 0 بود به همون تعداد ، عدد 0 را چاپ می کنیم: 2 بار

triumph
چهارشنبه 29 آبان 1392, 10:02 صبح
به نظرم شما آرایه رو داخل یک while بذار و شرطش رو بذار مقدار یک کاکتری مثلا...بگو اگر کاربر کاراکتری وارد کرد اون موقع while قطع بشه همون جا هم یک کانتر بذار تا برات بشموره...
فکر کنم منظورت این بوده باشه دوست عزیز

Faraz Mehraien
چهارشنبه 29 آبان 1392, 21:09 عصر
ببین من خودم تو این مساله مشکل دارم ولی یه الگوریتمی هست به نام مرتب سازی حبابی می تونه کمک کنه.
اینم یه کدش.که البته اگر می خوای نزولی چاپ کنه باید علامت بزرگتر در آخرین if بشه کوچکتر
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{

int a[10],i,j,temp;
char ch;
cout<<"10 adad baray moratab kardan vared kon";
for(i=0;i<10;i++)
cin>>a[i];
for(i=9;i>=0;i--)
for(j=0;j<=i;j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
for(i=0;i<10;i++)
cout<<a[i]<<endl;


system("PAUSE");
return EXIT_SUCCESS;
}

Faraz Mehraien
چهارشنبه 29 آبان 1392, 21:29 عصر
که البته منم همچین سوالی داشتم دوست عزیز تو تاپیکی به نام اشکال در run شدن.کسی جواب نداد رفتم تو سایت های خارجی دنبالش.خوشحال می شم اگه کمک کرده باشم:لبخندساده: