الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعده

مغلق
بدأه alr7al في 19 يونيو 2003 · 0 رد · 325 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1

السلام عليكم

ادي كود برنامج ولكن لم افهم طريقة عمله واريد المساعدة لفهمه ثم كتابته بطريقتي الخاصة وشكرا

#include
void moveDisk(int numdsk, int source, int dest, int spare, int &movecount, bool printeachmove)


    {
    	if(numdsk==1)


        	{
        		movecount++;
        		if(printeachmove)
        			cout<<" Move top disc from "<        	}
        	else


            	{
            		moveDisk(numdsk-1, source, spare, dest, movecount, printeachmove);
            		moveDisk(1, source, dest, spare, movecount, printeachmove);
            		moveDisk(numdsk-1, spare, dest, source, movecount, printeachmove);
            	}
        }
        int menu()


            {
            	int menuchoice;
            	cout<<" [1] Print only the number of moves "<            		<<" [2] Print each move "<            		<<" [3] Quitn"
            		<<"Please enter the number of your choice. ";
            	cin>>menuchoice;
            	return menuchoice;
        }
        void main()


            {
            	int menuchoice, numdisks, movecount;
            	bool printeachmove, playagain=true;
            	menuchoice=menu();
            	switch(menuchoice)


                	{
                		case 1:
                			printeachmove=false;
                			break;
                		case 2:
                			printeachmove=true;
                			break;
                		case 3: 
                			playagain=false;
                			break;
                	}
                	while(playagain)


                    	{
                    		cout<<"nn How many disks? ";
                    		cin>>numdisks;
                    		cout<<"nn";
                    		movecount=0;
                    		moveDisk(numdisks, 1, 3, 2, movecount, printeachmove); 		// arguments: (num disks, source pole, dest pole, temp pole)
                    		cout<<"n";
                    		cout<<" It took "<                    		menuchoice=1;
                    		menuchoice=menu();
                    		switch(menuchoice)


                        		{
                        			case 1:
                        				printeachmove=false;
                        				break;
                        			case 2:
                        				printeachmove=true;
                        				break;
                        			case 3: 
                        				playagain=false;
                        				break;
                        			default:
                        				break;
                        		}
                        	}
                        	cout<                    }

هذا الموضوع مغلق.

مواضيع مشابهة