C语言计算分段函数

1、 计算下列分段函数
f(x,y)= 2X2+3x+1/(x+y) (x>=0,y>0)
f(x,y)=2X2+3x+1/(1+y2)(x>=0,y<=0)
f(x,y)=3sin(x+y)/ 2X2+3X+1 (x<0)
具体要求如下:
(1) 用if语句实现多路分支,自变量x,y与函数值均用双精度类型。
(2) 自变量x,y用scanf函数输入,且输入前要有提示。结果的输出采用以下形式:
x=具体值,y=具体值,f(x)=具体值
(3) 分别输入x=3,y=8;x=5,y=-9;x=-7,y=2运行该程序。
2、 采用if嵌套重新编写程序1,其余不变,重复实现第一题中的功能。
3、 用scanf函数输入一个百分制成绩,要求输出成绩等级ABCDE。其中90——100分为A,80----89分为 B, 70---79分为C,60---70分为D,60分以下为E。

注意:公式中的‘/’表示除号,x,y后面的2表示幂。公示中没有乘号

1. 代码如下,3)需要实际运行时输入测试
int main(void)
{
double x, y, f;
printf("Please input 2 double number in the form of x y:\n");
scanf("%lf%lf", &x, &y);

if(x>=0 && y>0)
f = 2*x*x + 3*x +1/(x+y);
else if(x>=0 && y<=0)
f = 2*x*x + 3*x +1/(1+y*y);
else
f = 3*sin(x+y)/(2*x*x) + 3*x + 1;

printf("x=%lf, y=%lf, f(x, y)=%lf\n", x, y, f);

return 0;
}

2.代码如下
#include <stdio.h>
#include<math.h>

int main(void)
{
double x, y, f;
printf("Please input 2 double number in the form of x y:\n");
scanf("%lf%lf", &x, &y);

if(x>=0)
{
if(y>0)
f = 2*x*x + 3*x +1/(x+y);
else
f = 2*x*x + 3*x +1/(1+y*y);
}
else
f = 3*sin(x+y)/(2*x*x) + 3*x + 1;

printf("x=%lf, y=%lf, f(x, y)=%lf\n", x, y, f);

return 0;
}

3.代码如下
#include <stdio.h>

int main(void)
{
int score = 0;
printf("Please input a score between 0-100:\n");
scanf("%d", &score);
if(score<0 || score>100)
printf("Wrong input of score!\n");
else if(score>=90 && score<=100)
printf("A\n");
else if(score>=80 && score<=89)
printf("B\n");
else if(score>=70 && score<=79)
printf("C\n");
else if(score>=60 && score<=69)
printf("D\n");
else
printf("E\n");

return 0;
}追问

上面两个代码运行结果不一样啊?你分别输入x=3,y=8;x=5,y=-9;x=-7,y=2运行程序。-7,2的结果不一样

追答

我这儿运行结果一样的啊
输入的形式是“-7 2”,中间不要加“,”

追问

呵呵 我漏了 #include
#include
第二个代码是If嵌套吗?我怎么感觉跟第一个是一样的

追答

if里边不是还有个if和else么?
那就是嵌套喽~

追问

编程计算组合数的值,会吗?给你加分啦

追答

我嘞个去,应该自己写的啊,都很简单的程序
我手头没编译环境,随便写了
int calChoose(int m, int k)
{
int c = 1;
int i = 1;
if(m m-k) //C(m,k) = C(m, m-k),用小的值计算
k = m-k;
for(i = 1; i <= k; i++)
{
c = c*(m-i+1)/i;
}
return c;
}

温馨提示:内容为网友见解,仅供参考
无其他回答

c语言中如何将分段函数值计算出来?
include <math.h> int main(){ float x, result;printf("请输入x的值:");scanf("%f",&x);if(x <= 0){ result = 0;} else if(x <= 10){ result = sqrt(x);} else { result = 2 * x + 3;} printf("%f",result);return 0;} ...

用C语言编写 求分段函数的值
include <stdio.h>void fun( float x);void main(){ fun(0); fun(-8); fun(9);}void fun(float x){ if(x==0) printf("y=1\\n"); else if(x<0) printf("y=%f\\n",2*x+3); else printf("y=%f\\n",3*x-5);} ...

c语言 计算分段函数,测试数据分别是-2,3,7
计算下列分段函数 f(x,y)= 2X2+3x+1\/(x+y) (x>=0,y>0)f(x,y)=2X2+3x+1\/(1+y2)(x>=0,y<=0)f(x,y)=3sin(x+y)\/ 2X2+3X+1 (x<0)

C 语言 编写程序,计算分段函数:
\/\/100分制 include <stdio.h> void main(){ int score,t;printf("输入成绩:");scanf("%d",&score);t=score\/10;\/\/t的取值0,1,2,3,4,5,6,7,8,9,10 switch(t){ case 0:case 1:case 2:case 3:case 4:case 5:printf("不及格\\n");break;case 6:printf("及格\\n")...

C语言计算分段函数的值为什么不对呢?
int x,y;采用上面两个方法都可以让程序正常运行。问题二,scanf语句中双引号当中有“x=”,全部是:scanf("x=%d",&x);或scanf("x=%lf",&x);这样的写法,要求在程序运行时,输入的内容要包含双引号内除格式符以外的所有字符,即你一定要输入:x=2[回车]系统才能读到x的值2。值得注意的是,...

c语言求下面的分段函数,多种方法
void main(){ int x,y;printf("Please type in x:");scanf("%d",&x);if(x<0)y=x;else if(x<10)y=x-10;else y=x+10;printf("y=%d\\n",y);} 2嵌套的if语句 include <stdio.h> void main(){ int x,y;printf("Please type in x:");scanf("%d",&x);if(x<0)y=x;...

C语言计算分段函数
int main(void){ double x, y, f;printf("Please input 2 double number in the form of x y:\\n");scanf("%lf%lf", &x, &y);if(x>=0 && y>0)f = 2*x*x + 3*x +1\/(x+y);else if(x>=0 && y<=0)f = 2*x*x + 3*x +1\/(1+y*y);else f = 3*sin(x+...

c语言设计 分段函数
<math.h> int main(){ double x,y;scanf("%lf",&x);if (x<0)y=0.5*(-x);else if (x<10)y=exp(x)+3;else if(x<20)y=log10(x);else if (x<30)y=pow(x,1.5);else if (x<50)y=pow (x,0.5)-1;else y=3*cos(x);printf("y=%lf\\n",y);return 0;} ...

c语言求分段函数
include<stdio.h> int main(){ float x,y;\/\/根据给定的测试用例,x,y应该为float型 scanf("%f",&x);\/\/x为float型,所以改为%f if(x<20){ y=x+100;} else if(x>=20&&x<=100){ y=x;} else y=x-100;printf("x=%f,y=%f\\n",x,y);return 0;\/\/缺少分号 } ...

c语言大神们!我想算个分段函数,但是当x=10的时候老是得到结果为72!为什 ...
因为你else if 那里条件已经有x=10,if函数是顺序执行的,当它检测到上面函数满足条件,就会执行函数并跳出函数。所以结果会是72

相似回答