#include<stdio.h> int f(int x); main() { int

如题所述

按你的递归函数,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
望采纳,谢谢~
温馨提示:内容为网友见解,仅供参考
无其他回答

解释一下#include<stdio.h> int f(int n); main() {int a=3,s; s=...
main(){ char a[]="369",*p=a;int s=0,t=1;while(*++p) t*=10; \/\/这里的while(*++p)是简写形式,它等价于while(*++p!=0)又等价于 while(*++p!='\\0')。因为"*"和"++"的优先级相同,而且是自由向左结合,p先加1再指向a数组,所以在这条语句中刚开始p是指向a[1]的也...

#include<stdio.h> int f(int,int); main() { int i=2,p; p=f(i,i...
int f(int,int) ;是声明函数 int f(int a , int b)函数具体定义 { int c;c=a;if(a>b) c=1;else if(a==b) c=0;else c=-1;return(c);} p=f(i,i+1);调用函数执行f(2,3)函数返回值为-1

...#include<stdio.h> int f(int n); main(){int a=3,s; s=f(a);s...
main(){ int a=3,s;s=f(a);\/\/s=4 s=s+f(a);\/\/f(a)=5;s=4+5=9;printf("%d\\n",s);} int f(int n){ static int a=1;\/\/这里是静态变量,静态变量的特点是赋值语句仅执行一次 n+=a++;\/\/这句话相当于n=n+a;a++;后置++先返回原数值,然后自变量+1 \/\/所以第一次s=...

#include<stdio.h> int f(int n); main() { int
这个是100连续除以2,一共9次,由于除数和被除数都是整数,所以结果是0,如果2改成2.0,结果就是0.125

C语言求范围之内素数的和与个数?
按照你的要求编写的C语言程序如下 include<stdio.h> int f(int x) \/\/定义判断素数的函数 { int n,flag=1;if(x==1) return 0;for(n=2;n<x;n++)if(x%n==0)flag=0;return flag;} int main(){ int i,N,M,count=0,sum=0;scanf("%d%d",&N,&M);for(i=N;i<=M;i++){ ...

以下程序运行后的输出结果是 #include<stdio.h> int f(int x, int...
由于f(int x,int y)函数返回的值是(y-x)*x,相当于说f(int x,int y)=(y-x)*x;这里主要是计算嵌套函数f(f(a, b), f(a, c));先将f(a, b)和 f(a, c)带进去,得到f((b-a)*a,(c-a)*a)=f((4-3)*3,(5-3)*3)=f(3,6)最后计算f(3,6)=(6-3)*3=9,所...

#define P 3 void F(int x){return(P*x*x);} main() {printf("%d\\n...
define P 3 include<stdio.h> int F(int x){ return(P*x*x);} void main(){ printf("%d\\n",F(3+5));} 这是全部的程序啊。那个不全结果为192

...#include <stdio.h> int fun(int x,int y){return (x+y);} main...
以下程序段的输出结果是 :8

#include<stdio.h> #include<math.h> int main() { float x,f(x),y...
f(x)表示的是函数,而flaot f(x)表式定义一个变量,明显矛盾,所以你的编译过不了,之所以定义的哪行没有报错是因为编译器编译这一行是不考虑变脸的名字,所以你就可以过编译,以为你定义的是正确的,其实确实错的,就是这样的啦 望采纳,谢谢,不懂再问 ...

#include <stdio.h> int f(int a); int main () { int f(int); int...
原来的程序有多处错误,是不能运行的。经修改之后的程序如下:include <stdio.h> int f(int a);int main (){ int f(int);int a=5,i;for(i=0; i<3; i++)printf("%d ", f(a));return 0;} int f(int a){ auto int b=0;static int c=3;b = b+1;c = c+1;return (...

相似回答
大家正在搜