PDA

View Full Version : برنامه ای نوشتم برای جدا کردن رقم اعشار عدد ولی یه مشکلی هست کمکم کنید



lidaline
پنج شنبه 14 آبان 1388, 12:12 عصر
برنامه ای نوشتم برای جدا کردن رقم اعشار عدد ولی یه مشکلی هست کمکم کنید

#include<conio.h>
#include<stdio.h>
#include<math.h>
//Type numberd that diveided by *
main()
{
double a,b;
float num;
printf("please enter a number\n");
scanf("%f",&num);

printf("num= %f\n",num);
b = modf(num, &a);
printf("a= %f\n",a);
printf("b= %f\n",b);
getch ();
return 0;
}
وخروجی آن مثلا به شکل

please enter a number
23.6
num=23.6000
a=23.0000
b=0.60000

مشکل من اینه که این صفرهای اضافی کارمو خراب میکنه لطفا بهم بگید مشکل از کجاست:گریه:

tdkhakpur
پنج شنبه 14 آبان 1388, 12:25 عصر
خب اين شكلي بنويس


printf("num= %.0f\n",num);
printf("a= %.1f\n",a);

lidaline
پنج شنبه 14 آبان 1388, 12:31 عصر
خب اين شكلي بنويس


printf("num= %.0f\n",num);
printf("a= %.1f\n",a);

دستتون درد نکنه که دارید کمکم می کنید ولی این باز جواب نمیده لطفا یکبار دیگه خودتون امتحان کنید

m.soleimani
پنج شنبه 14 آبان 1388, 16:53 عصر
برنامه ای نوشتم برای جدا کردن رقم اعشار عدد ولی یه مشکلی هست کمکم کنید

#include<conio.h>
#include<stdio.h>
#include<math.h>
//Type numberd that diveided by *
main()
{
double a,b;
float num;
printf("please enter a number\n");
scanf("%f",&num);

printf("num= %f\n",num);
b = modf(num, &a);
printf("a= %f\n",a);
printf("b= %f\n",b);
getch ();
return 0;
}
وخروجی آن مثلا به شکل

please enter a number
23.6
num=23.6000
a=23.0000
b=0.60000

مشکل من اینه که این صفرهای اضافی کارمو خراب میکنه لطفا بهم بگید مشکل از کجاست:گریه:



#include<conio.h>
#include<stdio.h>
#include<math.h>
//Type numberd that diveided by *
int main()
{
double a,b;
float num;
printf("please enter a number\n");
scanf("%f",&num);

printf("num= %g\n",num);
b = modf(num, &a);
printf("a= %g\n",a);
printf("b= %g\n",b);
getch ();
return 0;
}
امیدوارم که مشکل حل شده باشه :بامزه:

tdkhakpur
پنج شنبه 14 آبان 1388, 17:04 عصر
دستتون درد نکنه که دارید کمکم می کنید ولی این باز جواب نمیده لطفا یکبار دیگه خودتون امتحان کنید
البته بصورت
printf("a= %g\n",a);
هم ميشود نوشت ولي باز براي كنترل خروجي ميتوانيد اين كار را هم انجام بديد ولي بهتره براي اينگونه كارها از تبديل اعداد به رشته استفاده كنيد.


#include<conio.h>
#include<stdio.h>
#include<math.h>
//Type numberd that diveided by *
main()
{
double a,b;
float num;
printf("please enter a number\n");
scanf("%f",&num);

printf("num= %f\n",num);
b = modf(num, &a);
printf("a= %.0f\n",a); // اعداد اعشار را چاپ نميكند
printf("b= %.1f\n",b);//يك رقم از اعداد اعشار را چاپ مي كند
getch ();
return 0;
}

kitten
پنج شنبه 14 آبان 1388, 17:32 عصر
تو سی پلاس پلاس از طریق تابع setp می شه این کار را کرد +



#INCLUDE<MATH.H>

Salar Ashgi
جمعه 15 آبان 1388, 13:46 عصر
میشه توسط تابع جزء صحیح براحتی این کار رو انجام داد:




#include <iostream>
#include <conio>
#include <math>
void ashari_split(float n,int &x,float &y){
x = floor(n);
y = n-x;
}
//==========================================
int main(){
double num;
cin>>num;
int x;
float y;
ashari_split(num,x,y);
cout<<"Sahih : "<<x<<" , "<<"Ashar : "<<y<<endl;
getch();
}


مثال : اگر num برابر 12.25 باشد ، x برابر 12 و y برابر 0.25 خواهد بود .

موفق باشید .