PDA

View Full Version : سوال: معکوس کردن یک عدد اعشاری



13601360
شنبه 04 خرداد 1387, 18:58 عصر
با عرض سلام
چه جوری می شود عددی مثل 543.21 را به صورت 12.345 در خروجی نشان داد

emad_67
شنبه 04 خرداد 1387, 20:26 عصر
اینجا ها رو بین:
http://barnamenevis.org/forum/showthread.php?t=41839
http://barnamenevis.org/forum/showthread.php?t=13845

13601360
شنبه 04 خرداد 1387, 21:56 عصر
این لینکها هیچ کمکی نکرد یک روش ساده معرفی کنید

MOHSEN8000
شنبه 04 خرداد 1387, 23:12 عصر
عددت رو اونقدر توی 10 ضرب کن تا کاملا صحیح بشه.(مثلا 54321). بعد اگه یه کانتر هم بزاری که چند مر حله طول کشیده که عددت این جوری بشه در واقع کانتره تعداد رقم های اعشارت رو بهت می ده. حالا شروع کن در هر مرحله باقی مانده عددت بر 10 رو ضرب کن در 10 به توان (کانتر -1) و توی یه متغیر بریز. واین باقی مانده رو از عددت کم کن (54320) و بعد عددت رو بر 10 تقسیم کن و دوباره همین کارو کن.

farhadamin
شنبه 04 خرداد 1387, 23:38 عصر
این کد را قبلا یکی از بجه ها در یک پست گذاشته بود دقیقا همونی هست که می خواهی...


#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
void main()
{
float num,endInvFltNum,newFltNum;
int count=0,div=1,div2=1,p,intNum,invIntNum=0;
int digit=0,invIntNum2,fltNum,invFltNum=0;
cout<<"\n Enter a float number: ";
cin>>num;
do
{
num=num*10;
++count;
}while(num!=(int)num);
for(int i=0;i<count;++i)
div*=10;
intNum=(int)num/div;// Acquire Integer part
while(intNum)
{
p=intNum%10;
invIntNum=invIntNum*10+p;
intNum/=10;
} // Inverse Of Integer Part
invIntNum2=invIntNum;
while(invIntNum2)
{
++digit;
invIntNum2/=10;
}
for(int i=digit;i>0;--i)
div2*=10;
endInvFltNum=(float)invIntNum/div2;
fltNum=(int)num%div; // Conver Float part to integer
while(fltNum)
{
p=fltNum%10;
invFltNum=invFltNum*10+p;
fltNum/=10;
} // Inverse Of Integer Part
newFltNum= invFltNum+endInvFltNum;
cout<<"\n Inverse Your Number is: "<<newFltNum;
cout<<"\n\n Press Any Key For Exit...";
_getch();
}
موفق باشید...

MRHagh
یک شنبه 05 خرداد 1387, 06:00 صبح
یک جستجوی ساده ... و انواع مدلهای بر عکس کردن عدد اعشاری :
http://barnamenevis.org/forum/showthread.php?t=104400&page=2

zuck_619
دوشنبه 06 خرداد 1387, 22:23 عصر
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
int main()
{
int b;
char str[20],rst[20] ;
cout<<"enter number: ";
gets(str);
b=strlen(str);
for(int i=0;i<b;i++)
{
rst[i] = str[b-i-1];
}
cout<<"contrary is: ";
cout<<rst;
getch();
return 0;
}

moh.mon
یک شنبه 12 خرداد 1387, 22:14 عصر
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
int main()
{
int b;
char str[20],rst[20] ;
cout<<"enter number: ";
gets(str);
b=strlen(str);
for(int i=0;i<b;i++)
{
rst[i] = str[b-i-1];
}
cout<<"contrary is: ";
cout<<rst;
getch();
return 0;
}


البته این کار شما اشتباه چون شما یه رشته رو بر عکس کردین نه یه اعداد اعشاری رو.
لطفا اطلاعات اشتباه ندین آقا Zock.