سلام
من یک برنامه توی c++ (البته باید توی cمی نوشتم ولی برنامش گیرم نیومد اگه برنامهی c دارید برام بگذارید)
این برنامه باید محاسبه ی e^x یا exp(x میبود که ط را دریافت کند و تا 50 رقم اعشار e^x از روی سری تیلورش یعنی این سری:
...+!e^x=1+x+(x^2)/2!+(x^3)/3!+(x^4)/4
بدست بیاورد
راستش این برنامهای که من نوشتم امتحانی بود برای 4 رقم اعشار
ولی فقط تا x=1 یا حد اکثر x=2 جواب میده از اون به بعد مثل اینکه اعشار زیاد میاره توی float جا نمیگیره اشتباه میکنه اعداد عجیب غریب میده
تازه اگه هم برای تا 7 رقم اعشار هم کار کنه نمی دونم چهطوری با ید تا 50 رقمشو بنویسم چون توی doubleکمتر از 10 رقم اعشار جا می گیره و توی long double هم که امتحان کردم اصلا نفهمیدم چی کار میکنه
می خواستم از تابع ()exp که تویmath .h نوشته شده و آماده است کمک بگیرم چون فکر می کنم آن ها هم از همین سری استفاده کرده بودند ولی فایلشو که توی world pad باز کردم چیزی دستگیرم نشد جز این 1 خط
double _Cdecl exp (double __x);
میخواستم کمک کنید که چجوری 50 رقم اعشارو می شه توی یک variable ریخت کلا اگه بشه کمکم کنید ممنون می شم. برنامم هم این پایینه:
#include<stdio.h>
#include <math.h>
main(){
float x, m=0; int j=1,o,i=0,m1,m2 ;char k;
scanf("%f",&x) ;
do {m1=m2 ;
if (i<= 0) j=1;
else j=j*i ;
m=m+float(pow(x,i) / j) ;
m2=int(m*(pow(10,4))) ;
i+=1 ;
}
while ( m2!= m1) ;
printf("%5.3f",m);
scanf("%c",k) ;
return 0;
}