چاپ ارقام یک عدد به صورت نزولی - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

چاپ ارقام یک عدد به صورت نزولی

0 امتیاز
برنامه ای که عدد صحیح از ورودی گرفته و در خروجی ارقام ان را به طور نزولی مرتب شده چاپ کند پشاپیش از راهنمایی تون ممنونم.
سوال شده آذر 1, 1392  بوسیله ی Azar (امتیاز 628)   29 43 61
دوباره تگ گذاری شد دی 26, 1392 بوسیله ی BlueBlade

3 پاسخ

+3 امتیاز
 
بهترین پاسخ

کدش بدین صورت میشه.

#include <iostream>
#include <vector>
#include <algorithm>
#include <functional> 

using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
	cout << "press enter a number:";
	int number;
	cin >> number;
	vector<int> digits;

	while (number > 0)
	{
		digits.push_back(number % 10);
		number /= 10;
	}
	std::sort(digits.begin(),digits.end(),std::greater<int>());

	for (size_t i=0; i < digits.size();i++)
		cout << digits[i];
	cout << endl;
	system("pause");
	return 0;
}

 

پاسخ داده شده آذر 1, 1392 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
انتخاب شد بهمن 16, 1392 بوسیله ی BlueBlade
فقط ویژوال و سی پلاس پلاس
بله.این کد با C++ نوشته شده و شما هم باید سعی کنید با C++ کدهای خودتونو بنویسید چون ansi C دیگه کم کم در حال منسوخ شدنه
+2 امتیاز

برای بدست آوردن ارقام عدد باید باقیمانده تقسیم های متوالی به ۱۰ حساب بشه . (تا وقتی که خارج قسمت عدد به ۱۰ صفر نشده عدد رو به ۱۰ تقسیم و باقیمانده به ۱۰ رو  داخل آرایه ذخیره کن )

برای مرتب کردن آرایه هم میشه از الگوریتم های sort مثلا bubble sort استفاده کرد .

http://fa.wikipedia.org/wiki/%D9%85%D8%B1%D8%AA%D8%A8%E2%80%8C%D8%B3%D8%A7%D8%B2%DB%8C_%D8%AD%D8%A8%D8%A7%D8%A8%DB%8C

این کد رو ببین الان result یک آرایست که ارقام عدد داخلشه فقط کافیه sort بشه .

    int number,temp;
    cin>>number;
    int n=0;
    temp=number;
    while(temp!=0)
    {
        n++;
        temp /=10;
    }

    int result[n];
    // int *result=new int[n];
    for(int i=0;number!=0;i++)
    {
        result[i] = number%10;
        number /=10;
    }

 

پاسخ داده شده آذر 1, 1392 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
بله این را میدونم ..
ولی موضوع اینه که نمیتونم از ارایه استفاده کنم .. چون مقدارش متغیره
مقدارش ثابته دقیقا اندازه همون تعداد ارقام عدده .
نه منظورم اینه که کاربر میتونه هر تعداد رقمی که میخواد بزنه ..
کدی که گزاشتمو ببین
نه دیگه ...
الان ویژوال به اون result[n]که شما نوشتین ایراد میگیره
چون متغیره
توی Visual studio نمیشه ولی توی gcc میشه  .
از این استفاده کن  int *result=new int[n];
+1 امتیاز
#include<iostream>
using namespace std;
int main ()
{
	int x;
	cin>>x;
	int n;
	int i = 0;
	int y = 0;
	y=x;
	while (y>0)
	{
		y = y/10;
		i++;
		n = i;
	}

	while (x!= 0)
	{
		int adad = 0 ,min = 0 ,tmp = 0,sum = 0 ;
		min = x%10;
		x/= 10;
		adad = x;
		while ( adad!= 0 )
		{
			sum = sum*10;
			int ragham = adad%10;
			if ( ragham < min )
			{
				tmp = ragham ;
				ragham = min ;
				min = tmp;
			}
				sum += ragham;
			    adad /= 10;
		}	
			cout << min << " ";
	}
	
	return 0 ;
}

 

پاسخ داده شده آذر 1, 1392 بوسیله ی Azar (امتیاز 628)   29 43 61
اشکال برنامه من کجاست ؟؟؟ :(
از همون روشی که گفتم برو به جواب میرسی .
...