你這個題是ACM的題目?我看了下你的程序,正經(jīng)的數(shù)字是可以的,但你說錯了,那就該就是要考慮極限情況了。譬如x=0.0000000000000000000000000000000001的時候,你的程序輸出是100.0。。。。。應(yīng)該就是出錯在這里了。
在濰坊等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計、做網(wǎng)站 網(wǎng)站設(shè)計制作定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),營銷型網(wǎng)站,成都外貿(mào)網(wǎng)站建設(shè)公司,濰坊網(wǎng)站建設(shè)費(fèi)用合理。
還有我的老師告訴我,使用float不要用x==0這種表達(dá)方式,,因?yàn)閒loat類型的等于其實(shí)就是在有限的位數(shù)上比較大小。。。當(dāng)數(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;
}
}
#include
int
main()
{
int
n,m;
int
i;
double
s=0;
printf("Please
input
two
numbers.For
example,3,7\n");
scanf("%d
%d",n,m);
for(i=n;i
追問:
在主函數(shù)中調(diào)用一個函數(shù)求這個值怎么搞?
謝謝
評論
加載更多
int?fun(int?x?)
{
if(x0??x!=3)
return?x*x+x+6;
if((x=0??x10)??(x!=2)??(x!=3))
return??x*x?-?5*x+6;
return?x*x-x-1;
}
希望能幫到你,望采納!