📄 newton.c
字号:
#include <stdio.h>#include <math.h>#include <stdlib.h>#include <string.h>#define lll 80#define dim 20typedef double vecteur[dim];/*trouver le polynome*/ double f(vecteur p, int rang, double x0) { double f1; int i; f1=0; for(i=0;i<= rang;i++) { f1=f1+p[i]*pow(x0,rang-i); } return f1; }/*trouver la derivee du polynome*/ double g(vecteur p, int rang, double x0) { double g1; int i; g1=0; for(i=0;i<= rang-1;i++) { g1=g1+(rang-i)*p[i]*pow(x0,rang-i-1); } return g1; } int lecture(char name[],vecteur p) { FILE *fp; int num,i,j,rang; char dd[2],dum[lll]; double ttt;printf(" donner le numero de l'exemple voulu (1<num<10):"); scanf("%d",&num); printf(" le numero de l'exemple est %d\n",num); if ((fp = fopen(name,"r+t")) == NULL) { puts(" on ne peut ouvrir le fichier\n" ); exit(1); } do { fgets(dum,lll,fp); dd[0]=dum[24];dd[1]=dum[25]; }while(dum[0] != '$' || atoi(dd)!=num); fscanf(fp,"%d",&rang); printf("\n le degre du polynome est: %d\n",rang); for (i=0;i <= rang;i++) { fscanf(fp,"%lf",&p[i]); } for (i=0;i <= rang;i++) { printf("p[%d]=%lf \n" ,i,p[i]); } fclose(fp); return(rang); }void main(void){ /* declaration des variables */ extern int lecture(); vecteur p; char rep,name[25]; int rang,i,j,n; double s,erreur,x1,x0,racine; /* initialition des variables */for(i=0;i<=19;i++) { p[i]=0.; } fflush(stdin); printf(" donner le nom du fichier: "); gets(name); printf(" le nom du fichier est %s\n",name);do{ rang=lecture(name,p);/*trouver le x1*/ printf("\n donnez la valeur a x[0]: \n"); scanf("%lf",&x0); printf("\n donnez la valeur du erreur: \n"); scanf("%lf",&erreur); do { x1=x0-(f(p,rang,x0)/g(p,rang,x0)); s=fabs(x1-x0); x0=x1; }while(s>erreur); racine=x1;printf("la racine est %lf \n :",racine); fflush(stdin); printf("Voulez vous recommencer?(o/n)?\n"); scanf("%c",&rep); } while (toupper(rep) == 'O'); puts(" fin de fichier \n");}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -