PDA

View Full Version : مبتدی: اعداد اعشاری



math_c
پنج شنبه 30 آذر 1391, 08:51 صبح
با سلام خدمت تمامی دوستان و تبریک شب یلدا:قلب:

به زبان سی یه برنامه میخوام بنویسم که این کار رو کنه مثلا عدد 15/44 رو به صورت دو عدد 15 و 44 نمایش بده من میتونم عدد 15 رو نمایش بدم ولی تو نمایش دادن قسمت اعشاری اعداد مشکل دارم یعنی اصلا چیزی به ذهنم نمیرسه دوستان اگه راه حلی سراغ دارن ارایه بدن ممنون میشم.:خجالت:

یه سوال الان من بخوام این عدد صحیح رو نشان بدم با استفاده از این دستور درسته دیگه ؟

float x;
int m;

m=(int)x

یعنی اینطوری باید قسمت صحیح رو نشون بده دیگه درسته ؟:متفکر:

میشه دوستان یه کمکی کنند ؟

Moosaiemr
پنج شنبه 30 آذر 1391, 09:01 صبح
داداش گلم اگه قسمت صحیح را بدست آوردی خوب یک کار کن عدد صحیح بدست آمده را از کل عدد کم کن قسمت اعشار بدست میاد به همین راحتی:
float x;
int m;
m=(int)x;
float ashar;
ashar = x-(float)m;

math_c
پنج شنبه 30 آذر 1391, 09:12 صبح
داداش گلم اگه قسمت صحیح را بدست آوردی خوب یک کار کن عدد صحیح بدست آمده را از کل عدد کم کن قسمت اعشار بدست میاد به همین راحتی:
float x;
int m;
m=(int)x;
float ashar;
ashar = x-(float)m;



راست میگی ها :لبخند:

math_c
پنج شنبه 30 آذر 1391, 09:29 صبح
دوستان مثل اینکه نمیشه یعنی مثلا 15/43 رو به این صورت نشون میده 15 و 0.43 ولی من میخوام اینطوری نشون بده 15 و 43 من برنامه رو نوشتم قرار میدم کد رو هم قرار میدم دوستان راه حلی سراغ ندارن ؟:گریه:

#include<stdio.h>
#include<stdlib.h>
int main()
{
float x;
int m;
float ashar;

printf(" please enter your float number");
scanf("%f", &x);
m=(int)x;
ashar=x-(float)m;

printf(" adade aval %d va adade dovom %f" ,m,ashar);
system ("pause");
return 0;
}

H_G_G_I
پنج شنبه 30 آذر 1391, 10:03 صبح
0.43 رو صربدر 100 کنی میشه بدستش بیاری . البته چون ممکنه ارقام اعشارت متفاوت باشه این کار عملی نیست .
به نظر من اول از همه float رو رشته کن بعد با رشته کار کن .البته زیاد خوب نیست !
چیز دیگه به ذهنم نی میرسه ! ساختار float هم نمی دونم چی جوریه وگرنه با شیفت دادن می تونی اعشارو بگیری !:متفکر:
:متفکر:
:متفکر:

math_c
پنج شنبه 30 آذر 1391, 10:24 صبح
0.43 رو صربدر 100 کنی میشه بدستش بیاری . البته چون ممکنه ارقام اعشارت متفاوت باشه این کار عملی نیست .
به نظر من اول از همه float رو رشته کن بعد با رشته کار کن .البته زیاد خوب نیست !
چیز دیگه به ذهنم نی میرسه ! ساختار float هم نمی دونم چی جوریه وگرنه با شیفت دادن می تونی اعشارو بگیری !:متفکر:
:متفکر:
:متفکر:


بعد اون وقت رشته چیه ؟

کسی چیزی به ذهنش نمیرسه ؟

omidshaman
پنج شنبه 30 آذر 1391, 11:28 صبح
میشه یک حلقه تکرار نوشت اعداد رو به اندازه تعداد رقم های اعشاری در 10 ضرب کرد ولی یکم پیچیدست
ساده ترین راهش همون رشتست

بعد اون وقت رشته چیه ؟
رشته خوردنیه تو اش میریزن:)
توی c به
char* a ="123dca" می گن رشته
توی C++‎‎‎‎‎ به
string a="123dca"
یک حلقه بنویس تا قبل از . بفرسته تو a بعد . رو بفرسته تو b سادست

math_c
پنج شنبه 30 آذر 1391, 12:08 عصر
خب چرا مسخره میکنی نمیدونستم خب:گریه:

حالا میشه شما با استفاده از حلقه ببایی و این برنامه رو بنویسی تا هم کمکی به من بشه که تو مساله های بعد چه جوری استفاده کنم هم کمکی به بقیه دوستان ؟:بوس:

omidshaman
پنج شنبه 30 آذر 1391, 12:47 عصر
مسخره نکردم شوخی بود!
این برنامه با string! حلقشو خودت فکر کن بنویس...
البته با string ّبهتره چون دیگه محدودیت تعداد ارقام هم نداره عددت 1000 رقم هم باشه درست کار می کنه

#include <iostream>
#include<string>
#include <stdlib.h>
using namespace std;
int main()
{
cout<<"Enter number : ";
string _Number;
string _Before;
string _After;
cin>>_Number;
unsigned int i=0;
unsigned int end=_Number.find('.');//peida kardan mahale .
while(i<end)
{
_Before.resize(i+1); //afzayesh tool string
_Before[i]=_Number[i];
i++;
}
int i2=0;
while(i<_Number.size())
{
_After.resize(i2+1);
_After[i2]=_Number[i+1];
i++;
i2++;
}
cout<<_Before<<endl;
cout<<_After<<endl;
// int before=atoi(_before.c_str()); tabdil be int
// int after=atoi(_after.c_str());

}

math_c
پنج شنبه 30 آذر 1391, 12:53 عصر
دادا دستت درد نکنه ها ولی من فقط تا حلقه بلدم برنامه بنویسم:گریه:

از این هیچی نفهمیدم:خجالت:

بازم قربون مرامت که اومدی برنامه رو نوشتی.:بوس:

کسی نیست ؟:لبخند:

H_G_G_I
پنج شنبه 30 آذر 1391, 14:51 عصر
دادا دستت درد نکنه ها ولی من فقط تا حلقه بلدم برنامه بنویسم

خب بقیشو یاد بگیر بعدد بیا برنامه بنویس !:لبخندساده:

math_c
پنج شنبه 30 آذر 1391, 15:37 عصر
آخه استادمون گفته تا سر مبحث حلقه امتحان میگیره منم دارم تمرین میکنم گفتم برنامه هایی رو که توشون اشکال دارم بیام اینجا مطرح کنم تا یه کمکی هم بهم بشه :بامزه: