PDA

نسخه کامل مشاهده نسخه کامل : اشکال یابی این برنامه



poorya_2
19-09-2015, 21:15
درود

دوستان صورت مسئله برنامه اینه : برنامه ای بنویسید که عددی از ورودی دریافت کند و مقسوم علیه های ان را در آرایه قرار دهد و سپس ارایه چاپ کند

اشکال کار اینجاست که هر عددی وارد کنم خروجی صفر نشون داده میشه نمیدونم مشکل برنامه کجاست !!! :n28:

این سورس برنامه من :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

ahmadpnu
19-09-2015, 21:47
سلام
مشکل برنامه شما این است که در خط " a[i] = x%i " در حلقه while ، باقی مانده تقسیم در آرایه ذخیره می شود که در حلقه for برای شناسایی مقسوم علیه ها استفاده میشود.
زمانی مقسوم علیه شناسایی میشود که باقی مانده تقسیم یعنی محتوای آرایه صفر باشد و در برنامه شما محتوای آرایه (صفر) برای چاپ ارسال میشود.
برای حل مشکل ، باید آرایه ای به برنامه اضافه کنید که مقدار مقسوم علیه (مثلا j ) را زمانی که باقی مانده صفر است را ذخیره کند و آن را بعنوان خروجی چاپ کند.

poorya_2
19-09-2015, 21:56
سلام
مشکل برنامه شما این است که در خط " a[i] = x%i " در حلقه while ، باقی مانده تقسیم در آرایه ذخیره می شود که در حلقه for برای شناسایی مقسوم علیه ها استفاده میشود.
زمانی مقسوم علیه شناسایی میشود که باقی مانده تقسیم یعنی محتوای آرایه صفر باشد و در برنامه شما محتوای آرایه (صفر) برای چاپ ارسال میشود.
برای حل مشکل ، باید آرایه ای به برنامه اضافه کنید که مقدار مقسوم علیه (مثلا j ) را زمانی که باقی مانده صفر است را ذخیره کند و آن را بعنوان خروجی چاپ کند.


همین که میگید رو توی سورس من استفاده کنید ، من الان نمیدونم چیکار کنم ، باید عملی نشون بدید :n02:

ahmadpnu
19-09-2015, 22:16
یه راه ساده تر هم داره که مقدار خود i را چاپ کنه. یعنی : cout << i << endl
ولی اینطوری عدد یک و خود عدد هم چاپ میشه که با اضافه کردن یک if برای جلوگیری از چاپ آنها درست میشه : if (i<>1 & i<>x) then
من چند سال هست برنامه C ننوشتم نمی دونم گرامرش درسته یا نه :n02:

poorya_2
19-09-2015, 22:27
یه راه ساده تر هم داره که مقدار خود i را چاپ کنه. یعنی : cout << i << endl
ولی اینطوری عدد یک و خود عدد هم چاپ میشه که با اضافه کردن یک if برای جلوگیری از چاپ آنها درست میشه : if (i<>1 & i<>x) then
من چند سال هست برنامه C ننوشتم نمی دونم گرامرش درسته یا نه :n02:


اون که اره ، راحته این کار :n02:

ولی میخواد که با استفاده از ارایه چاپ بشه

Life24
20-09-2015, 02:41
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

poorya_2
20-09-2015, 08:26
...................................



ممنون ، همون دیشب خودم حلش کردم ، یادم رفت توی تاپیک اعلام کنم:n16: