فكر نمي كنم در جايي از برنامه B را تابعي از C تعريف كرده باشم اما باز شما هم بررسي كنيد بد نيست.نقل قول:
براي گرفتن ورودي از نوع عدد از چه روشي بايد استفاده مي كردم؟ با اين روش مشكلي در برنامه ايجاد مي شه ؟
Printable View
فكر نمي كنم در جايي از برنامه B را تابعي از C تعريف كرده باشم اما باز شما هم بررسي كنيد بد نيست.نقل قول:
براي گرفتن ورودي از نوع عدد از چه روشي بايد استفاده مي كردم؟ با اين روش مشكلي در برنامه ايجاد مي شه ؟
اين جا هر چه قدر تلاش مي كنم نمي تونم برنامه رو بزارم.
میشه و اتفاقا از لحاظ حافظه هم به صرفه هست ولی در این صورت نتیجه رو خود تابع باید چاپ کنه. اگه بخواهیم از آرایه معمولی(ایستا) استفاده کنیم بهتره آرایه خارج از تابع تعریف بشه و به عنوان آرگومان به تابع ارسال بشه تا خود تابع محدودیتی در مورد سایز نداشته باشه :نقل قول:
البته بهترین روش استفاده از آرایه ی پویا هست که دیگه لازم نیست سایز آرایه رو از قبل معلوم کنیم:کد:#include <iostream>
using namespace std;
long fact(int n);
int findWays(int nRight, int nDown, int iCol, char Ways[], bool isStart = false);
int findWays(int nRight, int nDown, int iCol, char Ways[], bool isStart)
{
static int count;
if (isStart)
count = 0;
if (nRight == 0 && nDown == 0)
{
for (int i = 0; i < iCol; i++)
cout << Ways[i] << ' ';
cout << endl;
return count;
}
if (nRight != 0)
{
Ways[iCol] = 'R';
findWays(nRight-1, nDown, iCol + 1, Ways);
}
if (nDown != 0)
{
Ways[iCol] = 'D';
findWays(nRight, nDown-1, iCol + 1, Ways);
}
return count;
}
int main()
{
int nRows = 3, nCols = 3, nWays;
char Ways[6];
/*
cout << "Enter number of rows : ";
cin >> nRows;
cout << "Enter number of columns : ";
cin >> nCols;
*/
cout << "Number of rows : " << nRows << endl;
cout << "Number of cols : " << nCols << endl;
nWays = findWays(nCols, nRows, 0, Ways, true);
cout << "Number Of Ways : " << nWays << endl;
return 0;
}
بازم به خودت بستگی داره که چطوری بنویسی.اینی هم که من نوشتم ممکنه بدون اشکال نباشه و بشه بهترش رو نوشت(توی کدی که قبلا نوشته بودم count یه مشکلاتی داشت)کد:#include <iostream>
using namespace std;
long fact(int n);
int findWays(int nRight, int nDown, int iCol, bool isStart = false);
long fact(int n)
{
long result = 1;
for (int i = 2; i <= n; i++)
result *= i;
return result;
}
int findWays(int nRight, int nDown, int iCol, bool isStart)
{
static int count = 0;
static char *Ways = NULL;
if (isStart)
{
if (Ways)
delete Ways;
count = fact(nRight+nDown) / (fact(nRight)*fact(nDown));
Ways = new char[count];
}
if (nRight == 0 && nDown == 0)
{
for (int i = 0; i < iCol; i++)
cout << Ways[i] << ' ';
cout << endl;
return count;
}
if (nRight != 0)
{
Ways[iCol] = 'R';
findWays(nRight-1, nDown, iCol + 1);
}
if (nDown != 0)
{
Ways[iCol] = 'D';
findWays(nRight, nDown-1, iCol + 1);
}
return count;
}
int main()
{
int nRows, nCols, nWays;
cout << "Enter number of rows : ";
cin >> nRows;
cout << "Enter number of columns : ";
cin >> nCols;
nWays = findWays(nCols, nRows, 0, true);
cout << "Number Of Ways : " << nWays << endl;
return 0;
}
عزیز اینجا تاپیک پرسیدن سوال هست نه حل کردن پروژه های دانشجویی . البته دوستان دیگه هم هستن که میتونن جواب بدن منتها من حوصله ش رو ندارم:13:نقل قول:
مشکلت برای گذشتن کد چی هست؟ توی ساده ترین حالت میتونیCopy-Paste کنی و یا اگه میخوای ظاهرش قشنگ تر باشه بین تگ های [ C O D E ] و [C O D E / ] قرارشون بده(بدون فاصله هایی که گذاشتم) البته خود Editor هم یه دکمه واسه این کار داره(#)نقل قول:
تابع دريافت اعداد از ورودي scanf است. در ضمن اصلا" بعد getch , scanf متفاوت است.مگر آنكه شما منظورتان دريافت كد اسكي اعداد باشد.بهر حال ،ارائه صورت مسئله به تمام اين سوالات پاسخ خواهد داد.نقل قول:
سلام.نقل قول:
مرسی .
یعنی این همه برنامه که تو این بخش هست هیچ کدوم مربوط به پروژه های دانشجویی نمیشه ؟؟؟؟؟؟؟؟
عجب ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟:18:
پس مربوط به چی میشه ؟
مگه این تاپیک مربوط به پرسیدن سوالات نیست ؟
من می تونم الگوریتم رو برات بنویسم. ببین به نفعته که خودت برنامه رو بنویسینقل قول:
ببین اینجا نباید بگی من این برنامه رو می خوام کسانی که اینجا جواب می دن نوکر من یا تو نیستن. این دوستان لطف می کنن و ما رو برای حل مسئله راهنمایی می کنن. برنامه ای هم که شما خواستید اگه کمی روش فکر کنید به راحتی حل میشهنقل قول:
ببین من هر کاری کردم نتونستم این برنامه اولی رو بفهمم(هنوز کدهای جدیدی که امروز گذاشتی رو بررسی نکردم). ببین من این قدر ها هم خنگ نیستم یا یه چیز هایی رو ما نخوندیم یایه ذره سخت گفتی. مثلا چه جوری از یه تابع 2 تا خروجی می گیری؟ مگه قرار نبود برای محاسبه ی تعداد از اون فرمول استفاده کنی؟ هر چی فکر می کنم نمی دونم چه جوری تو این بین تعداد راه ها رو حساب کردی؟ می تونی فقط برنامه ی چاپ راه ها رو بنویسی تعدادش رو نمی خواد.نقل قول: