#include?"stdio.h"
西固網(wǎng)站建設公司成都創(chuàng)新互聯(lián)公司,西固網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為西固數(shù)千家提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\外貿(mào)營銷網(wǎng)站建設要多少錢,請找那個售后服務好的西固做網(wǎng)站的公司定做!
#include?"math.h"
int?main(int?argc,char?*argv[]){
double?x,y;
printf("Input?x(R:)...\nx=");
scanf("%lf",x);
if(x5)
y=-x+3.5;
else?if(x=5??x10)
y=20-3.5*pow(x+3,7);//這里看著像7,是幾就把7改成幾
else
y=-3.5+sin(x);
printf("y?=?%g\t(x==%g)\n",y,x);
return?0;
}
運行樣例:
#includestdio.h
#includemath.h
void main()
{
int x;
float Y;
printf("please input x\n");
scanf("%d",x);
if(x 0)
Y = 1 + exp(x); //數(shù)學函數(shù),計算e的x次方
else if(x == 0)
Y = 1;
else
Y = log(x * x); //數(shù)學函數(shù),計算x的平方,以e為底
printf("%.4f\n",Y);
}
please input x
1.0000
Press any key to continue
please input x
1
3.7183
Press any key to continue
please input x
-2
1.3863
Press any key to continue
x改成float類型,第一句printf結尾的分號是中文的,沒必要esle if,要清空緩沖區(qū),否則程序會一閃而過
#includestdio.h
#includemath.h
void main()
{
float x;
printf("輸入一個數(shù)X\n");
scanf("%f",x);
if (x0)
x=0;
else
x=2*x+1;
printf("%f\n",x);
fflush(stdin);
getchar();
}
#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;?
}
你這個題是ACM的題目?我看了下你的程序,正經(jīng)的數(shù)字是可以的,但你說錯了,那就該就是要考慮極限情況了。譬如x=0.0000000000000000000000000000000001的時候,你的程序輸出是100.0。。。。。應該就是出錯在這里了。
還有我的老師告訴我,使用float不要用x==0這種表達方式,,因為float類型的等于其實就是在有限的位數(shù)上比較大小。。。當數(shù)字極小或者極大的時候就會出現(xiàn)不相等的數(shù)字會出現(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;
}
}
輸入數(shù)用scanf()函數(shù);
分段用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ù)
補充:對于自變量x的不同的取值范圍,有著不同的對應法則,這樣的函數(shù)通常叫做分段函數(shù)。它是一個函數(shù),而不是幾個函數(shù);分段函數(shù)的定義域是各段函數(shù)定義域的并集,值域也是各段函數(shù)值域的并集。