PDA

View Full Version : سوال: شمارنده حلقه,عملگرهای یکانی



Serveh_20
سه شنبه 31 اردیبهشت 1392, 08:14 صبح
main(){
int x=0,total=0;
while(x*=x++<= 10)
total+=x++;
cout<<total;


جواب برنامه 36 ,فقط میشه بگین چرا؟ شمارنده حلقه چه جوری کار میکنه؟
x++ تو حلقه تاثیری در شمارنده داره؟
لطف دو سه مرحله رو تریس کنید و با مقدار دهی متغیرها برام توضیح بدین
ممنون

omidshaman
سه شنبه 31 اردیبهشت 1392, 09:29 صبح
while(x*=x++<= 10)
تقدم <=بیشتر از *= ه پس اول x<=10 چک میشه و یک مقدار true یا false یعنی 0یا 1 بر میگردونه و تا وقتی که x از 11 کمتره x*=1 انجام میشه که جواب باز میشه x بعد x یک واحد اضافه میشه
یعنی این while با این عبارت یکیه

while(x*=(x<= 10) )
++x
و وقتی که x از 11 بیشتر بشه

[x++<= 10)
صفر رو برمیگردنه که x*=0 میشه 0 و از while خارج میشه برنامه که در مجموع میشه گفت *= تو این حلقه کلا بی اثره


total+=x++;
که مشخصه چکار می کنه

total+=x
x++;

Serveh_20
سه شنبه 31 اردیبهشت 1392, 10:29 صبح
while(x*=x++<= 10)
تقدم <=بیشتر از *= ه پس اول x<=10 چک میشه و یک مقدار true یا false یعنی 0یا 1 بر میگردونه و تا وقتی که x از 11 کمتره x*=1 انجام میشه که جواب باز میشه x بعد x یک واحد اضافه میشه
یعنی این while با این عبارت یکیه

while(x*=(x<= 10) )
++x
و وقتی که x از 11 بیشتر بشه

[x++<= 10)
صفر رو برمیگردنه که x*=0 میشه 0 و از while خارج میشه برنامه که در مجموع میشه گفت *= تو این حلقه کلا بی اثره


total+=x++;
که مشخصه چکار می کنه

total+=x
x++;



ممنون از پاسخ کاملتون,نکته ای که بهش توجه نکردم تقدم عملگر <= بود.
مرسی