ورود

View Full Version : سئوال درباره ++C



SajjadKhati
پنج شنبه 18 تیر 1394, 19:45 عصر
نمیدونم همچین تاپیکی وجود داشت یا اشتباه گزاشتم پست رو یا نه
اول بگم که من مبتدی هستم.
بعد یه سئوال دارم اینکه این کد ، متغییر YearGain اش چرا کار نمیکنه؟همش مقدار اولیه اش که 9 هست میشه و تغییر نمیکنه :




#include "stdafx.h"
#include<iostream>
using namespace std;








int _tmain(int argc, _TCHAR* argv[])
{
int CurAccount = 1000,YearGain=0;




for (int i = 1; i <= 10;)
{
YearGain=CurAccount*(5 / 100);
cout << "Sode " << i << " : " << YearGain << endl;
CurAccount = CurAccount + YearGain;
cout << "Sepordeh Sale "<<i<<" : "<<CurAccount << endl;
i++;
}




getchar();
return 0;
}

Mahdi.lpr
پنج شنبه 18 تیر 1394, 20:01 عصر
سود میخوای محاسبه کنه ‍؟!

سود اعشاری هست که داری میریزی تو یه int ، اول اینو درست کن
بعد اگه سود 5 درصد میخوای اینطوری حساب کن !
ببین درست میشه ؟!؟!
YearGain=(CurAccount*5) / 100

SajjadKhati
پنج شنبه 18 تیر 1394, 22:00 عصر
سود میخوای محاسبه کنه ‍؟!

سود اعشاری هست که داری میریزی تو یه int ، اول اینو درست کن
بعد اگه سود 5 درصد میخوای اینطوری حساب کن !
ببین درست میشه ؟!؟!
YearGain=(CurAccount*5) / 100

آره
والا من با ++C آشنا نیستم و نمیدونم چرا تو خط




YearGain=CurAccount*(5 / 100);



این طوره اما اگه تو لوا بود ، اول 5 رو تقسیم بر 100 میکرد و با CurAccount که مقدار اولیه اش 1000 بود جمع میکرد که برای بار اول میشد 50
هم عدد 5 و هم عدد 100 و هم حداقل مقدار اولیه ی CurAccount که 1000 هست و هم حاصل شون که 50 میشه ، همه شون عدد صحیح هستن و از نوع integer پس چرا باید به دابل تبدیل کرد؟ حالا بقیه ی تکرار دستور که احتمالا اعشاری درمیاد رو کاری ندارم اما دفعه ی اول که همه ی متغییرها از نوع عدد صحیح ان و مقادیرشون هم همینطور ، چرا مقدار YearGain بازم صفر میشه؟
بعد اینکه وقتی حاصل اعشاری بشه ، فقط متغییر خروجی (در بالا YearGain) کافیه که از نوع double باشه یا اینکه همه ی متغییرهایی که توش شرکت میکنن باید از نوع اعشاری باشن؟

rahnema1
شنبه 20 تیر 1394, 20:45 عصر
سلام
احتمالا توی lua اعداد double هستند اما در ++c بسته به طرز نوشتن اعداد، نوع اونها متفاوته
مثلا اگه بنویسیم 5 نوع عدد میشه int واگه بنویسیم 5.0 نوع عدد می شه double
وقتی دو عدد int بر هم تقسیم بشن قسیم عدد صحیح انجام می شه
5 تقسیم بر 100 می شه 0 چون هر دو عدد int هستند وتقسیم اونها اعشاری نمی شه وعدد صحیح میشه و به جای 0.05 عدد صفر به دست میاد
پس میتونید بنویسد 100 /5.0
یعنی اگه یکی از اعداد double باشه جواب هم double میشه

amirmomeni
سه شنبه 30 تیر 1394, 17:52 عصر
سلام این موضوع رو به صورت کامل و تصویری استاد بزرگ پاسبان در وبسایت بزرگ دانشجویار یاد داده برو تو سایت قسمت دسته ها توسی پلاس پلاس فیلم هاش رو نگاه کن عالین!!
http://www.daneshjooyar.com