c语言编程:函数的值;我一直编错,求打救,紧急,谢谢

输入x(x为整数),求函数值函数定义如下:F(x)=xx小于3F(x)=F(x/3)*2x大于等于3且x为3的倍数F(x)=F((x-1)/3)+1x大于等于3且x除3余... 输入x(x为整数),求函数值 函数定义如下:
F(x)=x x小于3
F(x)=F(x/3)*2 x大于等于3且x为3的倍数
F(x)=F((x-1)/3)+1 x大于等于3且x除3余1
F(x)=F((x-2)/3)+2 x大于等于3且x除3余2
展开
 我来答
仒雨
2012-12-06 · TA获得超过175个赞
知道小有建树答主
回答量:282
采纳率:100%
帮助的人:291万
展开全部
C版:
#include "stdio.h"
void main(){
double F(int x);
int x;
printf("请输入x的值:");
scanf("%d",&x);
printf("函数值:%lf\n",F(x));
}
double F(int x){
if (x<3)
return x;
else if ((x>=3)&&(x%3==0))
return F(x/3)*2;
else if ((x>=3)&&(x%3==1))
return F((x-1)/3)+1;
else if ((x>=3)&&(x%3==2))
return F((x-2)/3)+2;
}

C++版:
#include "iostream.h"
void main(){
double F(int x);
int x;
cout<<"请输入x的值:";
cin>>x;
cout<<"函数值:"<<F(x)<<endl;
}
double F(int x){
if (x<3)
return x;
else if ((x>=3)&&(x%3==0))
return F(x/3)*2;
else if ((x>=3)&&(x%3==1))
return F((x-1)/3)+1;
else if ((x>=3)&&(x%3==2))
return F((x-2)/3)+2;
}
linshaolie
2012-12-06 · TA获得超过434个赞
知道小有建树答主
回答量:174
采纳率:0%
帮助的人:104万
展开全部
#include <stdio.h>
void main() {
int x ;
double y ;
printf("输入x:") ;
scanf("%d",&x) ;
if(x>=3){
if(x%3==0)
y = (double)x/3*2 ;
else
if(x%3==1)
y = (double)(x-1)/3+1 ;
else
if(x%3==2)
y = (double)(x-2)/3+2 ;
}
else
y = x ;
printf("F(x)= %.2lf\n",y) ;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-12-06
展开全部
double F(int x){
if(x<3) return x;
else if(x%3==0) return F(x/3)*2;
else if(x%3==1) return F(x)=F((x-1)/3)+1;
if(x%3==2) return F((x-2)/3)+2;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
上善若如水叔
2012-12-06 · 超过10用户采纳过TA的回答
知道答主
回答量:6927
采纳率:0%
帮助的人:979万
展开全部
1、
int max(int a,int b)
{
return a>b?a:b;
}
2、
#include //链接标准头文件
#define N 5 //定义常量N并赋值为5
void main() //主函数入口
{ //表示主函数开始
int i,j; //定义整形变量i和j
int grade[N],temp; //定义N维(N=5,也就是五维啦^^)整形数组和整形变量temp
printf("输入5个数\n"); //在屏幕上显式“输入5个数”并且换行
for(i=0;i<N;i++) //开始for循环,从i=0,每次加1,直到i=4,共需循环5次
{ //循环体开始
scanf("%d",&grade[i]); //依次获取用户输入的整数值并存入数组grade中
} //循环结束
for(i=0;i<N;i++) //开始外层for循环,从i=0,每次加1,直到i=4
{ //外层循环体开始
for(j=0;j的N-j-1
{ //内层循环体开始
if(grade[j]<grade[j+1]) //条件判断
{ //如果整形数组前面的数比其后的小,执行以下语句
temp=grade[j+1]; //将比较大的数赋值给temp
grade[j+1]=grade[j]; //将比较小的数赋值给数组中后面的变量
grade[j]=temp; //将比较大的数赋值给数组中前面的变量
} //从此便完成大小变量的交换,使得大值往前放
} //结束内层循环
} //结外内层循环,完成排序
printf("最后排序为:\n");//在屏幕显式“最后排序为:”并换行
for(i=0;i的for循环类似
{ //开始循环输出
printf("%d",grade[i]); //只是这里要逐个输出数组中的五个数值
} //结束循环输出
printf("\n"); //输出换行到屏幕,看不到什么效果,可删掉
} //结束main()函数
其他编程语言 紧急求救用c语言编写:1、编写函数求两个数的较大值,并在主... 提问者对于答案的评价: 谢谢啦!!^-^ 相关内容 2008-10-19 用c语言 ...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
晟朗
2017-12-14
知道答主
回答量:8
采纳率:0%
帮助的人:6985
展开全部
#include <stdio.h>
int F(int x);
int main()
{
int x;
scanf("%d",&x);
printf("%d",F(x));
}
int F(int x)
{

int a;
if(x<3)
a=x;

if(x>=3&&x%3==0)
a=F(x/3)*2;

if(x>=3&&x%3==1)
a=F((x-1)/3)+1;

if(x>=3&&x%3==2)
a=F((x-1)/3)+2;

return a;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式