你這個題是ACM的題目?我看了下你的程序,正經的數字是可以的,但你說錯了,那就該就是要考慮極限情況了。譬如x=0.0000000000000000000000000000000001的時候,你的程序輸出是100.0。。。。。應該就是出錯在這里了。
創(chuàng)新互聯建站專注為客戶提供全方位的互聯網綜合服務,包含不限于做網站、成都網站制作、鎮(zhèn)賚網絡推廣、微信平臺小程序開發(fā)、鎮(zhèn)賚網絡營銷、鎮(zhèn)賚企業(yè)策劃、鎮(zhèn)賚品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯建站為所有大學生創(chuàng)業(yè)者提供鎮(zhèn)賚建站搭建服務,24小時服務熱線:13518219792,官方網址:www.cdcxhl.com
還有我的老師告訴我,使用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;
}
}
#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;?
}
#include math.h
int main()
{
double x,y;
scanf("%lf",x);
if (x0)
y=0.5*(-x);
else
if (x10)
y=exp(x)+3;
else
if(x20)
y=log10(x);
else
if (x30)
y=pow(x,1.5);
else
if (x50)
y=pow (x,0.5)-1;
else
y=3*cos(x);
printf("y=%lf\n",y);
return 0;
}
擴展資料
return 0代表程序正常退出。return是C++預定義的語句,它提供了終止函數執(zhí)行的一種方式。當return語句提供了一個值時,這個值就成為函數的返回值。
return語句用來結束循環(huán),或返回一個函數的值。
1、return 0,說明程序正常退出,返回到主程序繼續(xù)往下執(zhí)行。
2、return 1,說明程序異常退出,返回主調函數來處理,繼續(xù)往下執(zhí)行。return 0或return 1對程序執(zhí)行的順序沒有影響,只是大家習慣于使用return(0)退出子程序而已。
x改成float類型,第一句printf結尾的分號是中文的,沒必要esle if,要清空緩沖區(qū),否則程序會一閃而過
#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();
}
#includestdio.h
#includemath.h
int main()
{
int mark = -1;
float x,y;
scanf("%f",x);
if(x -2.0)
{
mark = 0;
}
else if(x = 3.0)
{
mark = 2;
}
else
{
mark = 1;
}
switch(mark)
{
case 0 : y = 7.0 - 2 * x; break;
case 1 : y = 5.0 - fabs(3 * x + 2.0); break;
case 2 : y = 3 * x + 4.0; break;
default: mark = 100;
}
if(mark == 100)
{
printf("error\n");
return 0;
}
printf("%f\n",y);
return 0;
}
輸入數用scanf()函數;
分段用switch()函數;
1、絕對值用math庫里面的abs()函數
2、e^x用math庫里面的pow(e,x)函數
3、同理指數的都有pow()函數,
4、cos函數也是math庫里面的double cos(double x)函數
補充:對于自變量x的不同的取值范圍,有著不同的對應法則,這樣的函數通常叫做分段函數。它是一個函數,而不是幾個函數;分段函數的定義域是各段函數定義域的并集,值域也是各段函數值域的并集。