farman-h
14-11-2008, 23:45
برنامه ای بنویسید که عدد اعشاری را از ورودی خوانده ، هریک از قسمتهای صحیح و اعشاری آن را به صورت یک عدد صحیح به خروجی ببرد . به عنوان مثال ، عدد 42/13 به صورت دو عدد صحیح 13 و 42 به خروجی برود.
کد:
#include<iostream.h>
#include<conio.h>
main(){
long double a;
clrscr();
cout<<"enter a number:";
cin>>a;
long int a1;
a1=(long int)a;
a=a-(long double)a1;
long int b=0;
int i=0;
while(a>0.0001&&i<5&&a<0.9999){
a*=10;
b=b*10+(long int)a;
a-=(long double)(long int)a;
i++;
}
if(a>0.9999)b++;
cout<<" "<<a1<<" "<<b;
getch();
return 0;
}
يه سوالي دارم كسي ميتونه كمكم كنه. سوالم اينه در آخرين مرحله چرا از قسمت اعشاري كه به صحيح تبديل ميشه يكي كم ميشه و بجاي اون اون++if(a>0.9999)b رو نوشتي تا اون يك عددي كه كم شده دوباره بهش اضافه بشه اگه كسي ميدونه ميتونه يه توضيح كوچيك برام بده .ممنونم
کد:
#include<iostream.h>
#include<conio.h>
main(){
long double a;
clrscr();
cout<<"enter a number:";
cin>>a;
long int a1;
a1=(long int)a;
a=a-(long double)a1;
long int b=0;
int i=0;
while(a>0.0001&&i<5&&a<0.9999){
a*=10;
b=b*10+(long int)a;
a-=(long double)(long int)a;
i++;
}
if(a>0.9999)b++;
cout<<" "<<a1<<" "<<b;
getch();
return 0;
}
يه سوالي دارم كسي ميتونه كمكم كنه. سوالم اينه در آخرين مرحله چرا از قسمت اعشاري كه به صحيح تبديل ميشه يكي كم ميشه و بجاي اون اون++if(a>0.9999)b رو نوشتي تا اون يك عددي كه كم شده دوباره بهش اضافه بشه اگه كسي ميدونه ميتونه يه توضيح كوچيك برام بده .ممنونم