javadbidel
چهارشنبه 25 آذر 1394, 22:33 عصر
سلام خدمت دوستان خوبم..
برنامه ای رو برای معکوس کردن عدد اعشاری نوشتم تو C
میخواستم ببینم ک ایا تو برنامه مشکلی وجود داره؟
چون وقتی Trace میکنم ک جواب میده..
اما بخاطر مدل ذخیره شدن اعشار ک دقیق نیست خروجی رو اشتباه میده...
برای حل این مساله راه حلی وجود داره؟
ببخشید ک تاپیک جدید ایجاد کردم..
چون تو تاپیک های قدیمی جوابی داده نمیشد
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int main()
{
int i,n,b,d,f=1,k=0;
float m;
double e;
while(1){
printf("\nEnter your number\n");
scanf("%f",&m);
n=m,
e=m-n;
printf("\n %f\n",e);
for(i=1;f;i*=10){
e=e*10.0;
d=e;
k+=d*i;
e=e-d;
if(e==0)
f=0;
}
printf("\n%d",k);
printf(".");
do{
b=n%10;
printf("%d",b);
n/=10;
}while(n!=0);
}
getch();
return 0;
}
برنامه ای رو برای معکوس کردن عدد اعشاری نوشتم تو C
میخواستم ببینم ک ایا تو برنامه مشکلی وجود داره؟
چون وقتی Trace میکنم ک جواب میده..
اما بخاطر مدل ذخیره شدن اعشار ک دقیق نیست خروجی رو اشتباه میده...
برای حل این مساله راه حلی وجود داره؟
ببخشید ک تاپیک جدید ایجاد کردم..
چون تو تاپیک های قدیمی جوابی داده نمیشد
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int main()
{
int i,n,b,d,f=1,k=0;
float m;
double e;
while(1){
printf("\nEnter your number\n");
scanf("%f",&m);
n=m,
e=m-n;
printf("\n %f\n",e);
for(i=1;f;i*=10){
e=e*10.0;
d=e;
k+=d*i;
e=e-d;
if(e==0)
f=0;
}
printf("\n%d",k);
printf(".");
do{
b=n%10;
printf("%d",b);
n/=10;
}while(n!=0);
}
getch();
return 0;
}