标签:原因 定义 double 数据 了解 scanf 内容 pre ima
1 /*sab.h*/ 2 #include<stdio.h> 3 double f(double x); 4 double sab(double a, double b,int n) 5 { 6 double h,result,x1,x2,x3=0,t,k; 7 h=(b-a)/n;/*求h的值*/ 8 x1=f(a);/*求f(a)的值*/ 9 x2=f(b);/*求f(b)的值*/ 10 for(k=1;k<=(n-1);k++)/*for循环的循环体*/ 11 { 12 t=a+k*h; 13 x3=x3+f(t);/*求h n-1Σk=1f(xk)*/ 14 } 15 result=h*(x1+x2)/2+h*x3;/*最终的值存入result中*/ 16 return result; 17 }
1 /*2-1.cpp*/ 2 #include<stdio.h> 3 #include<math.h> 4 #include"sab.h" 5 double f(double x) 6 { 7 double result; 8 result=x*x*exp(x);/*f(x)=x^2*e^x的程序段*/ 9 return result; 10 } 11 main() 12 { 13 double a,b,result; 14 int n; 15 printf("请输入a,b,n:");/*提示输入a,b,n*/ 16 scanf("%lf,%lf,%d",&a,&b,&n);/*输入a,b,n*/ 17 result=sab(a,b,n);/*调用sab(a,b,n)求积分*/ 18 printf("sab=%lf",result);/*输出结果*/ 19 return 0; 20 }
1 /*2-2.cpp*/ 2 #include<stdio.h> 3 #include"sab.h" 4 double f(double x) 5 { 6 double result; 7 result=1/(25+x*x);/* f(x)=1/(25+x*x); f(x)=1/(25+x^2)的程序段*/ 8 return result; 9 } 10 main() 11 { 12 double a,b,result; 13 int n; 14 printf("请输入a,b,n:");/*提示输入a,b,n*/ 15 scanf("%lf,%lf,%d",&a,&b,&n);/*输入a,b,n*/ 16 result=sab(a,b,n);/*调用sab(a,b,n)求积分*/ 17 printf("sab=%lf",result);/*输出结果*/ 18 return 0; 19 }
1 #include<stdio.h> 2 int Ack(int n,int x,int y) 3 { 4 int a; 5 if(n==0)/*判断回归条件1的if语句头部*/ 6 a=x+1; 7 if(n==1&&y==0)/*判断回归条件2的if语句头部*/ 8 a=x; 9 if(n==2&&y==0)/*判断回归条件3的if语句头部*/ 10 a=0; 11 if(n==3&&y==0)/*判断回归条件4的if语句头部*/ 12 a=1; 13 if(n>=4&&y==0)/*判断回归条件5的if语句头部*/ 14 a=2; 15 if(n!=0&&y!=0) 16 a=Ack(n-1,Ack(n,x,y-1),x);/*进一步递推的语句*/ 17 return a; 18 } 19 main() 20 { 21 int n,x,y,result; 22 printf("please input n,x,y:");/*提示输入n,x,y*/ 23 scanf("%d,%d,%d",&n,&x,&y);/*输入n,x,y*/ 24 if(n<0&&x<0&&y<0) 25 printf("输出错误并重新输入");/*如果输入不合法,输出错误提示信息并重新输入*/ 26 else 27 result=Ack(n,x,y);/*用输入的两个数据,调用递归函数*/ 28 printf("Ack(%d,%d,%d)=%d\n",n,x,y,result); 29 }
1 #include"stdio.h" 2 long getpower(int x, int y) 3 { 4 if(y==1)/*判断回归条件的if语句头部*/ 5 return x; 6 else 7 return x*getpower(x,y-1);/*进一步递推的语句*/ 8 } 9 main() 10 { 11 int num, power; 12 long answer; 13 printf("输入一个数:");/*提示输入一个数*/ 14 scanf("%d",&num);/*输入一个整数*/ 15 printf("输入幂次方:");/*提示输入幂次方*/ 16 scanf("%d",&power);/*输入一个整数*/ 17 answer=getpower(num,power);/*用输入的两个数据,调用递归函数*/ 18 printf("结果是:%ld\n", answer); 19 }
1 #include<stdio.h> 2 int age(int n) 3 { 4 int c; 5 if(n==1)/*判断回归条件的if语句头部*/ 6 c=10; 7 else 8 c=age(n-1)+2;/*进一步递推的语句*/ 9 return c; 10 } 11 main() 12 { 13 int n=5; 14 n=age(n);/*调用递归函数输出第5位学生的年龄*/ 15 printf("第5位学生的年龄是:%ld\n",n); 16 }
1 #include<stdio.h> 2 Acm(int m,int n) 3 { 4 int a; 5 if(m==0)/*判断回归条件的if语句头部*/ 6 a=n+1; 7 if(n==0) 8 a=Acm(m-1,1); 9 if(n>0&&m>0) 10 a=Acm(m-1,Acm(m,n-1));/*进一步递推的语句*/ 11 } 12 int main() 13 { 14 int a,b; 15 a=Acm(2,1); 16 b=Acm(3,2); 17 printf("Acm(2,1)=%d\nAcm(3,2)=%d",a,b);/*调用Acm函数输出Acm(2,1)和Acm(3,2)的结果*/ 18 return 0; 2 }
在寝室写实验报告时,实验报告的数据的前两个总是不能得到正确答案,在请教周萌同学之后,才发现是因为逗号的原因,因为在运行框中输入的逗号是中文逗号,而不是英文逗号,所以不能获得正确的实验数据。在以后的程序编写过程中,要注意中英文的切换。要注意到符号的不同所导致的错误。
标签:原因 定义 double 数据 了解 scanf 内容 pre ima
原文地址:https://www.cnblogs.com/gnxyxlzj/p/10885588.html