本文目錄一覽:
- 1、c語言 分段函數求值
- 2、C語言求分段函數的值
- 3、分段函數求值 c語言
- 4、C語言 分段函數求值。
- 5、用C語言求分段函數值
c語言 分段函數求值
你這個題是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語言求分段函數的值
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();
}
分段函數求值 c語言
# include stdio.h
# include math.h
void main()
{
int x;
int y;
while(1)
{
printf(“input x:\n”);
scanf(“%d”,x);
if(x-2)
{
y=7-2*x;
}
else if(x=-1 x3)
{
y=5-abs(3*x+2);
}
else
{
y=3*x+4;
}
printf(“y is %d\n\n”,y);
}
}
這樣就可以了,望採納!
C語言 分段函數求值。
#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語言求分段函數值
#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;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/252891.html