當前位置:首頁 » 編程語言 » c語言用遞歸法求分段函數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言用遞歸法求分段函數

發布時間: 2022-10-18 20:47:46

A. 怎麼用c語言編程一個分段函數

  1. #include
    intmain()
    {
    intx,y;
    scanf("%d",&x);
    if(0<x&&x<10)y=3*x+2;
    else
    {if(x=0)y=0;
    else
    {if(x<0)y=x*x;
    elseprintf("godie ");
    }
    }
    printf("%d",y);
    return0;
    }該程序的分段函數如下:
    f(x)=3x+2 (0<x<10)
    f(x)=1 (x=0)
    f(x)=x*x (x<0)

  2. #include <stdio.h>
    #include <math.h>
    void main()
    {
    float x;
    double y;
    printf("Please input the value of x:");
    scanf("%f",&x);
    if(x>=-10&&x<=4)
    {
    y=fabs(x-2);
    printf("y=%.2f ",y);
    }
    else if(x>=5&&x<=7)
    {
    y=x+10;
    printf("y=%.2f ",y);
    }
    else if(x>=8&&x<=12)
    {
    y=pow(x,4);
    printf("y=%.2f ",y);
    }

    else
    printf("No answer ");
    }

B. c語言編寫程序題: 計算分段函數,f(x)={ 2x+1(當x>0時) 0(當x=0時) 1/x(當x<0時)輸入x,計算函數並輸出&#

1
#include<stdio.h>

int main()
{
double x;
while(scanf("%lf",&x) == 1) {
if(x == 0) printf("0\n");
else if(x>0) printf("%lf\n",2*x+1);
else printf("%lf\n",1/x);
}
return 0;
}
2
#include<stdio.h>
int s[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int main()
{
int y,m,d,i,sum;
while(scanf("%d %d %d",&y,&m,&d) == 3) {
sum = 0;
for(i = 1;i<m;i++) sum += s[i];
sum += d;
if((y%400 == 0 ||(y%100 !=0 && y%4==0)) && m>2) sum ++;
printf("%d\n",sum);
}
return 0;
}
3
#include<stdio.h>

int f(int n)
{
if(n == 1) return 1;
else return n*f(n-1);
}

int main()
{
printf("%d\n",f(9)-f(7)+f(5)+f(3));
return 0;
}

C. 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、常式:

intmain(void)
{
doublex,y,f;
printf(": ");
scanf("%lf%lf",&x,&y);

if(x>=0&&y>0)
f=2*x*x+3*x+1/(x+y);
elseif(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 ",x,y,f);

return0;
}

D. 用C語言的函數遞歸方法來求

#include <stdio.h>

#include <math.h>

void fun2(int m)

{

int k=0,a[10];

for(int i=2;i<m;i++)

if(m%i==0)

a[k++]=i;

for(int i=0;i<k;i++)

{

printf("%d",a[i]);

if(i!=k-1)

printf(",");

}

}

void fun1(int m)

{

if(m<2)

printf("%d is a prime number",m);

for(int i=2;i*i<=m;i++)

if(m%i==0)

fun2(m);

else

printf("%d is a prime number",m);

}

int main( )

{ int n;

scanf("%d",&n);

fun1(n);

return 0;

}

E. 用C語言求分段函數值

#include<stdio.h>
intmain()
{
doublex,y;
scanf("%lf",&x);//輸入x的值
if(x<0)y=x*x-1;//如果x<0
elseif(x<1)y=x*x;//注意elseif已經包含x>=0,因此不需要再寫x>=0
elsey=x*x+1;//注意else已經包含x>=1,不需要再寫x>=1
printf("%lf",y);//輸出y的值
return0;
}

F. 求用c語言編寫這個分段函數

你的公式存在點問題,下面是遞歸的代碼及主函數,你看一下:

#include<stdio.h>
longfunc(intm,intn)
{
if(m==n||n==0)return1;
if(n==1)returnm;
returnfunc(m-1,n-1)+func(m-1,n);//遞歸調用
}
voidmain()
{
intm,n;
scanf("%d%d",&m,&n);
while(m<n||m<0||n<0)//確保輸入正確
scanf("%d%d",&m,&n);

printf("%ld",func(m,n));
getch();
}

已經測試過了,望採納!

G. c語言設計 分段函數

#include <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 ",y);

return 0;

}

(7)c語言用遞歸法求分段函數擴展閱讀

return 0代表程序正常退出。return是C++預定義的語句,它提供了終止函數執行的一種方式。當return語句提供了一個值時,這個值就成為函數的返回值。

return語句用來結束循環,或返回一個函數的值。

1、return 0,說明程序正常退出,返回到主程序繼續往下執行。

2、return 1,說明程序異常退出,返回主調函數來處理,繼續往下執行。return 0或return 1對程序執行的順序沒有影響,只是大家習慣於使用return(0)退出子程序而已。

H. C語言計算分段函數

你確定y也是0-40間的整數嗎?如果是的話,那麼該分段函數中的第三段計算的結果已經超出了數值范圍啊;如果y的取值沒有限制,那麼程序如下:
#include
<stdio.h>
void
main
()
{
int
x,y;
scanf("%d",&x);
if(x>=0&&x<10)
y=x;
else
if(x>=10&&x<20)
y=10;
else
if(x>=20&&x<40)
y=x*x+3;
else
{
printf("error:x不是0-40之間的整數!\n");
return;
}
printf("%d\n",y);
}

I. ,心弟人編程:用遞歸函數求分段函數的值,當n1,y=x,否則y=xx^(n-1)

/*
right\c)2017,csdn學院
*All cights reserved
*文件名稱:a.c
*作者:王琦
*完成日期:2017年7月7日
*版本號:6.0
*問題描述:求解分段函數的值
*程序輸出:分段函數的值
*/
#include <stdio.h>
double f(double n)
{
double j;
if(n<0.3)
j=0;
else if(n<0.8)
j=(n-0.3)/(0.8-0.3);
else
j=1;
return(j);
}
int main( )
{
double x;
printf("請輸入x的值:");
scanf("%lf", &x);
printf("解得:f(%.2f)=%.2f\n", x, f(x));
}

J. c語言 計算分段函數,測試數據分別是-2,3,7

{ f=x+1; if ( f<0 ) f=-f; }

x<=5

x,f);

計算下列分段函數

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)

(10)c語言用遞歸法求分段函數擴展閱讀:

已知函數f(x)= 求f(3)的值。

解:由3∈(-∞,6),知f(3)=f(3+2)=f(5),

又5∈(-∞,6),所以f(5)=f(5+2)=f(7).

又由7∈[6,+∞)所以f(7)=7-2=5,因此,f(3)=5。

求分段函數的函數值的方法:先確定要求值的自變數屬於哪一段區間,然後按該段的表達式去求值,直到求出值為止。