#includestdio.h

成都創新互聯長期為上1000+客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為龍山企業提供專業的網站設計、成都做網站,龍山網站改版等技術服務。擁有10年豐富建站經驗和眾多成功案例,為您定制開發。
void?main()
{
int?a(int?x,int?y);int?b(int?x,int?y);
int?c(int?x,int?y);float?d(float?x,float?y);
int?x,y;
scanf("%d,%d",x,y);
printf("x=%d,y=%d.\nx+y=%d.\nx-y=%d.\nx*y=%d.\nx/y=%f.\n",x,y,a(x,y),b(x,y),c(x,y),d(x,y));
}
int?a(int?x,int?y)
{
return(x+y);
}
int?b(int?x,int?y)
{
return(x-y);
}
int?c(int?x,int?y)
{
return(x*y);
}
float?d(float?x,float?y)//注意算除法的時候形參定義為float型的,否則x/y會自動取整
{
return(x/y);
}
你這個題是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;
}
}
#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;?
}
int?fun(int?x){
int?result?=?0;
if(x0){
result?=?-x;
}else?if(x==0){
result?=?100;
}else?if(x0){
result?=?x*x+1;
}
return?result;
}
int?main(){
int?num?=?0;
scanf("%d",num);
printf("%d",fun(num));
return?0;
}
輸入數用scanf()函數;
分段用switch()函數;
1、絕對值用math庫里面的abs()函數
2、e^x用math庫里面的pow(e,x)函數
3、同理指數的都有pow()函數,
4、cos函數也是math庫里面的double cos(double x)函數
補充:對于自變量x的不同的取值范圍,有著不同的對應法則,這樣的函數通常叫做分段函數。它是一個函數,而不是幾個函數;分段函數的定義域是各段函數定義域的并集,值域也是各段函數值域的并集。
#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;
}
本文題目:C語言四段函數求值 c語言表達式求值算法
文章出自:http://www.yijiale78.com/article32/hhcpsc.html
成都網站建設公司_創新互聯,為您提供外貿建站、網站收錄、網站設計、ChatGPT、響應式網站、品牌網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯