rprt.net
当前位置:首页 >> #inCluDE<stDio.h>DouBlE F (int n){int i; Dou... >>

#inCluDE<stDio.h>DouBlE F (int n){int i; Dou...

k*=i;那个*是咋回事?scanf("m=%lf,n=%lf",&n,&m);这句不对scanf("%lf,%lf",&n,&m);因为照你的写法输入时也要输入m= n=而且放入m和n的地址放入的是表达式了

两个错误看注释#include<stdio.h>double fsum(int n)//分号多余{ int i; double tempsum=0; if (n<=0) { printf("输入数字错误!%d<=0\n",n); return -1.0; } for (i=1;i<=n;i++)//改成分号 tempsum+=i; return tempsum;}main(){ int a; double x; scanf("请输入一个大于0的数:%d",&a); x=fsum(a); printf("1+2++%d=%f",a,x);}

main()函数中 第一次调用f(i),i此时值为0,即传送的参数为0即n的值为0,那么进入f函数循环时无法通过 i第二次调用f(i),i此时值为1,即传送的参数为1即n的值为1,那么进入f函数循环时可以通过1次i第二次调用f(i),i此时值为2,即传送的参数为2即n的值为2,那么进入f函数循环时可以通过2次i求分

为什么要用double型的呢袭?给你大概改了一2113下 输入先输5261m再输n 中间加“,”4102 就可以运行了!#include"stdio.h"int f(int n){ int i; int k=1; for(i=1;i<=n;i++)1653k*=i; return k;} void main(){ int n,m,cmn; printf("Please input m and n:\n"); scanf("%d,%d",&m,&n); if(n>m) printf("cmn=%d\n",f(n)/(f(n-m)*f(m))); else printf("Error!");}

#includeint main(){int n,i=1,j=1,sum=0; /*i为循环变量,j为n!, sum为总和 */ printf("请输入n的值:\n"); scanf("%d",&n); while(i 评论0 0 0

i=0时,调用函数返回值s=1 a=a+1=1i=1时,调用函数返回值s=1+1=2 a=a+2=3i=2时,调用函数返回值s=1+1+0.5=2.5 a=a+2.5=5.5

#include <stdio.h>main(){ int a=5,b=4,c=3,d=2; if(a>b && b>c) printf("%d\n",d); else if ((c-1>=d)==1) printf("%d\n",d+1); else printf("%d\n",d+2); return 0;}

按你的递归函数,2113f(10)=f(9)/2=f(8)/4==f(1)/2^9=100/512=0.19533125 但是你的返回值是int类型,小数会强制转5261换成整型数4102,也就是0 返回值类型改成double就可以了.稍微修改后的代1653码如下:#include<stdio.h> double f(int

你好.scanf("=%f", x); 改成scanf("%lf", &x);

按你的递归函数,f(10)=f(9)/2=f(8)/4==f(1)/2^9=100/512=0.19533125 但是你的返回值是int类型,小数会强制转换成整型数,也就是0 返回值类型改成double就可以了.稍微修改后的代码如下:#include double f(int x); int main() { int n = 10; double r; r=f(n); printf("%lf\n",r); return 0; } double f(int n) { if (n==1) return 100; if (n>1) { return (f(n-1)/2); } }输出结果为:0.195312 望采纳,谢谢~

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.rprt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com