PDA

View Full Version : این برنامه چرا اینطوریه؟نتایج به نظر من اشباهه



lidaline
چهارشنبه 30 دی 1388, 01:24 صبح
سلام دوستان یه نمونه سوال دیدم تو کتاب قمی با یان عنوان یک سکه 100 ریالی را به سکه های 2و5و10و20و50 ریالی خرد کند
واما سورس برنامه:
#include <stdio.h>
#include <conio.h>
int main()
{
int i2, i5, i10, i20, i50, count = 0;
unsigned long int sum;
clrscr();
for(i2 = 0; i2 <= 50; i2 ++)
for(i5 = 0; i5 <= 20; i5 ++)
for(i10 = 0; i10 <= 10; i10 ++)
for(i20 = 0; i20 <= 5; i20 ++)
for(i50 = 0; i50 <= 2; i50 ++){
sum=i2*2 + i5*5 + i10 *10 +i20*20 + i50*50;
if(sum==100){
printf("\n 2Rials=%d, 5Rials=%d, 10Rials=%d", i2, i5, i10);
printf(",20Rials=%d, 50Rials=%d", i20, i50);
count ++;
}// end of if
else
sum = 0;
}//end of for
printf("\n number of correct times:%d", count);
getch();
return 0;
}
این برنامه خروجیش به شکله کاملا عجیبیه نمیدونم شاید اشتباه تایپیه کتاب باشه شایدم ...
کسی برای این سوال جواب بهتری داره یا نه؟ اگه توضیحی دارید ممنون میشم

lidaline
چهارشنبه 30 دی 1388, 01:38 صبح
این یک نمونه سوال دیگست که پول رو میگیره وتبدیل به سکه های 5و10و100 تومنی میکنه
#include <stdio.h>
#include <conio.h>
int main()
{
int x,i,y2,j,y3,h;
printf("please enter your money number\n") ;
scanf ("%d",&x);
i = x /100;
y2 =x %100;
j =y2 / 50;
y3 =y2 %50 ;
h = y3 /5;
printf ("\n100rial=%d 50rial =%d , 5rial=%d",i,j,h);

getch();
return 0;
}
فقط می خوام بدونم چه لزومی داره کتاب این حلقه های تو در تو رو نوشته آیا منظور خاصی داره ؟ در ضمن قصدم آموزشه چون فکر میکنم این برنامه اولی داره احتمال میده که میشه به این شکل خرد کرد ببینید آیا درسته یا نه؟

qwerty11
چهارشنبه 30 دی 1388, 02:24 صبح
ببینید تو این سوال هدف به دست آوردن تمامی تعداد حالات ممکن برای داشتن 100 ریال هستش!
خروجی هم میشه بگی کجاش عجیبه !؟

حداکثر تعداد سکه های 50 ریالی 2تاست، پس یه حلقه for دوتایی براش گذاشته. حداکثر تعداد سکه های 20 ریالی 5تاست، پس یه حلقه for پنج تایی براش گذاشته و ....

برنامه ی دوم هم در واقع راه حل حریصانه برای این سواله و مشکلی نداره.

lidaline
چهارشنبه 30 دی 1388, 20:40 عصر
خروجی هم میشه بگی کجاش عجیبه !؟
خیلی ممنون ولی من هم گفتم که انگار این برنامه داره احتمالات رو بررسی میکنه
ولی اینجاش شک کردم که روی سوال رو استاد ما به شکل برنامه دوم حل کرده بود!!!!!

qwerty11
چهارشنبه 30 دی 1388, 21:16 عصر
ولی اینجاش شک کردم که روی سوال رو استاد ما به شکل برنامه دوم حل کرده بود!!!!! برنامه ی دوم یه سکه ی n ریالی رو با کمترین تعداد سکه ی ممکن پوشش میده! واسه همینم استادتون این سوال رو این شکلی حل کرده بود.