实验五
姓名游小锋班级单周上课的那班学号 11231193 实验一
一:根据泰勒多项式求sinx,cosx的近似值(-∞ 运行源程序: #include #include #include void main() { FILE *fp; if((fp=fopen("Taylor's formula.txt","w"))==NULL) { printf("File open error! \n"); exit(0); } int i; float c,d,x,p,y; x=0; while(x<=90) {i=1;p=1; c=p; y=x*3.14/180; while(i<=6) {p=-p*(y*y)/((2*i-1)*(2*i)); c=c+p;i++;} fprintf(fp,"cos %.0f=%.5f",x,c); fprintf(fp," "); d=sqrt(1-c*c); fprintf(fp,"sin %.0f=%.5f\n",x,d); x=x+5; } fclose(fp); } 运行结果见Taylor’s formula.txt 实验二: 实验题目:从文件中读入n个正整数,求他们的最大公约数和最小公倍数,写回到原文件。 实验源程序:#include #include GCD(int x,int y); void main() { FILE *fp; int x,y,n,gcd,lcm,i,gcd2; char d; fp=fopen("e:\\yxf.txt","r"); if(fp==NULL) { printf("文件打不开!\n"); exit(0) ; } n=0; d=fgetc(fp); while(d!=' '){ n=n*10+d-'0'; d=fgetc(fp); printf("read n!\n"); } x=0; d=fgetc(fp); while(d!=' '){ x=x*10+d-'0'; d=fgetc(fp); printf("read x!\n"); } y=0; d=fgetc(fp); while(d!=' ') { y=y*10+d-'0'; d=fgetc(fp); printf("read y!\n");} gcd=GCD( x, y); lcm=x*y/gcd; i=3; printf("n=%d!\n",n); while(i<=n) { x=0; d=fgetc(fp); while(d!=' '){ x=x*10+d-'0'; d=fgetc(fp);} gcd=GCD(gcd,x); gcd2=GCD(lcm,x); lcm=x*lcm/gcd2; i++; } fclose(fp); printf("GCD=%d\tLCM=%d\n",gcd,lcm); fp=fopen("e:\\yxf.txt","a"); if(fp==NULL) { printf("文件打不开!\n"); exit(0) ;} fprintf(fp,"\n%d",gcd); fprintf(fp,"\n%d",lcm); fclose(fp); } GCD(int x,int y) { int r; r=x%y; while(r) {x=y;y=r;r=x%y;} return y; } 实验结果: 实验三 实验题目:用记事本输入一段英文。写一程序,从文件中读出这段文章,在显示器上输出。 运行源程序: #include #include void main( ) { char c;FILE *fp; if(( fp=fopen("news.txt","r"))==NULL) { printf("Can't open this file!\n"); exit(0); } while((c=fgetc(fp))!=EOF) printf("%c",c); printf("\n"); fclose(fp); } 运行结果: #include #include GCD(int x,int y); void main() { FILE *fp; int x,y,n,gcd,lcm,i,gcd2; fp=fopen("e:\\yxf.txt","r"); if(fp==NULL) { printf("文件打不开!\n"); exit(0) ; } fscanf(fp,"%d",n); printf("read n!\n"); //fscanf(fp,"%d%d",&x,&y); fscanf(fp,"%d",x); printf("read x!\n"); fscanf(fp,"%d",y); printf("read y!\n"); gcd=GCD( x, y); lcm=x*y/gcd; i=3; printf("n=%d!\n",n); while(i<=n) { // fscanf(fp,"%d",&x); fscanf(fp,"%d",x); gcd=GCD(gcd,x); gcd2=GCD(lcm,x); lcm=x*lcm/gcd2; i++; } fclose(fp); printf("GCD=%d\tLCM=%d\n",gcd,lcm); fp=fopen("e:\\yxf.txt","a"); if(fp==NULL) { printf("文件打不开!\n"); exit(0) ;} fprintf(fp,"\n%d",gcd); fprintf(fp,"\n%d",lcm); fclose(fp); } GCD(int x,int y) { int r; r=x%y; while(r) {x=y;y=r;r=x%y;} return y; }