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