輸入數(shù)用scanf()函數(shù);
在四川等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,四川網(wǎng)站建設(shè)費(fèi)用合理。
分段用switch()函數(shù);
1、絕對值用math庫里面的abs()函數(shù)
2、e^x用math庫里面的pow(e,x)函數(shù)
3、同理指數(shù)的都有pow()函數(shù),
4、cos函數(shù)也是math庫里面的double cos(double x)函數(shù)
補(bǔ)充:對于自變量x的不同的取值范圍,有著不同的對應(yīng)法則,這樣的函數(shù)通常叫做分段函數(shù)。它是一個(gè)函數(shù),而不是幾個(gè)函數(shù);分段函數(shù)的定義域是各段函數(shù)定義域的并集,值域也是各段函數(shù)值域的并集。
#include?stdio.h?
int?main()?
{double?x,y;
scanf("%lf",x);
if(x0)y=x*x-1;
else?if(x1)y=x*x;
else?y=x*x+1;
printf("%g",y);
return?0;?
}
x改成float類型,第一句printf結(jié)尾的分號(hào)是中文的,沒必要esle if,要清空緩沖區(qū),否則程序會(huì)一閃而過
#includestdio.h
#includemath.h
void main()
{
float x;
printf("輸入一個(gè)數(shù)X\n");
scanf("%f",x);
if (x0)
x=0;
else
x=2*x+1;
printf("%f\n",x);
fflush(stdin);
getchar();
}
你這個(gè)題是ACM的題目?我看了下你的程序,正經(jīng)的數(shù)字是可以的,但你說錯(cuò)了,那就該就是要考慮極限情況了。譬如x=0.0000000000000000000000000000000001的時(shí)候,你的程序輸出是100.0。。。。。應(yīng)該就是出錯(cuò)在這里了。
還有我的老師告訴我,使用float不要用x==0這種表達(dá)方式,,因?yàn)閒loat類型的等于其實(shí)就是在有限的位數(shù)上比較大小。。。當(dāng)數(shù)字極小或者極大的時(shí)候就會(huì)出現(xiàn)不相等的數(shù)字會(huì)出現(xiàn)相等的情況了。
換成double就行了
#include "stdio.h"
void main()
{
double a=0.0;
while(scanf("%lf",a)!=EOF)
{
if(a0)
{
a=a*a+1;
}
else if(a0)
{
a=-a;
}
else if(a==0)
{
a=100.0;
}
printf("%.1lf\n",a);
a=0.0;
}
}
網(wǎng)頁名稱:利用c語言求分段函數(shù)的值 用c語言計(jì)算分段函數(shù)
本文URL:http://jinyejixie.com/article44/doscoee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、ChatGPT、域名注冊、移動(dòng)網(wǎng)站建設(shè)、定制開發(fā)、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)