PDA

View Full Version : وارون یه عدد اعشاری



jila_68
یک شنبه 15 فروردین 1389, 11:42 صبح
سلام خدمت دوستان عزیز
برنامه ای دارم که باید یه عدد اعشاری را گرفته و وارون اون رو برام بدست بیاره ؟
حالا دقیقاً نمی دونم که باید چیکار کنم اگه دوستان دراین مورد اطلاعاتی دارند در اختیارم بذارن و کمکم کنند؟
منتظر لطفتون هستم...

tdkhakpur
یک شنبه 15 فروردین 1389, 15:58 عصر
یعنی چی وارون اگه منظورتان برعکس عدد هست به رشته تبدیل کن بعد رشته رو برعکس کن به همین راحتی

jila_68
یک شنبه 15 فروردین 1389, 16:23 عصر
بله دقیقاً منظورم همون برعکس کردنه ولی مشکل اینجاست که نباید با رشته این کار انجام بشه .اگر به غیر از این روش, راه دیگه ای رو بلدید بهم بگید.

javanerd
یک شنبه 15 فروردین 1389, 16:36 عصر
عدد اعشاری رو در یک عدد ۱۰به توان n ضرب کن تا تمام اعشارش بپره. بعد عدد جدید رو توی یک حلقه بر ۱۰ تقسیم صحیح کن و باقیمانده‌ها رو نگه دار. آخر سر هم نتیجه رو از روی باقیمانده‌ها به دست بیار و با تقسیم بر ۱۰ به توان m ممیز رو به جای مناسب منتقل کن.

tdkhakpur
یک شنبه 15 فروردین 1389, 16:41 عصر
.اگر به غیر از این روش, راه دیگه ای رو بلدید بهم بگید.
بلد که هستیم :لبخندساده:
مراحل
1- قسمت صحیح را از عدد جدا کن داخل متغییر دیگر قرار بدید.
2 - قسمت اعشار را همچنین " " "
3 - حالا با کد زیر اعداد را پیوند بزن


float combine(int int_nums, int f_nums)
{
float val1 = 0;
float val2 = 0;
while(f_nums>0){
val1 = val1*10+f_nums%10;
f_nums /= 10;
}
while(int_nums>0){
val2 = val2/10+int_nums%10;
int_nums /= 10;
}
val2 = val2/10;
return val1+val2;
}

مثال


float num = 143.2985;
float NewNum;
NewNum = combine(143, 2985);
خروجی
NewNum = 5892.341;

Salar Ashgi
یک شنبه 15 فروردین 1389, 16:57 عصر
درخواست راهنمایی مجاز است ، اما درخواست کد ممنوع .



#include <iostream>
#include <conio>
#include <math>
int tedad_ashar(double n){
int f=0;
while(n!=floor(n)){
f++;
n*=10;}
return f;}
//==============
void rev(int n){
while(n!=0){
cout<<n%10;
n/=10;}
}
//==============
void myrev(double n){
float f = (n-floor(n));
int float_part = f*(pow(10,tedad_ashar(n)));
int int_part = floor(n);
rev(float_part);
cout<<".";
rev(int_part);
cout<<endl;
}
//===============
int main(){
double n;
cout<<"Enter a number :\n";
cin>>n;
myrev(n);

getch();
}