輸入數(shù)用scanf()函數(shù);
在四川等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎ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)營(yíng)銷推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,四川網(wǎng)站建設(shè)費(fèi)用合理。
分段用switch()函數(shù);
1、絕對(duì)值用math庫(kù)里面的abs()函數(shù)
2、e^x用math庫(kù)里面的pow(e,x)函數(shù)
3、同理指數(shù)的都有pow()函數(shù),
4、cos函數(shù)也是math庫(kù)里面的double cos(double x)函數(shù)
補(bǔ)充:對(duì)于自變量x的不同的取值范圍,有著不同的對(duì)應(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)是中文的,沒(méi)必要esle if,要清空緩沖區(qū),否則程序會(huì)一閃而過(guò)
#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ù)字是可以的,但你說(shuō)錯(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;
}
}