有兩種結(jié)構(gòu)可以選擇
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供淮陽網(wǎng)站建設(shè)、淮陽做網(wǎng)站、淮陽網(wǎng)站設(shè)計(jì)、淮陽網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、淮陽企業(yè)網(wǎng)站模板建站服務(wù),10余年淮陽做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
1.if
{}
else if
{}
else if
2.switch
case:
case:
case:
幫你改了下代碼,VC6測(cè)試通過,自己看看吧。
#includestdio.h
int main()
{
float x,y;//根據(jù)給定的測(cè)試用例,x,y應(yīng)該為float型
scanf("%f",x);//x為float型,所以改為%f
if(x20)
{
y=x+100;
}
else if(x=20x=100)
{
y=x;
}
else
y=x-100;
printf("x=%f,y=%f\n",x,y);
return 0;//缺少分號(hào)
}
main函數(shù)里讀取x的值的時(shí)候,要用%lf,因?yàn)閤是double型,如果是float型,則是用%f。
你試試。
#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;?
}
你這個(gè)題是ACM的題目?我看了下你的程序,正經(jīng)的數(shù)字是可以的,但你說錯(cuò)了,那就該就是要考慮極限情況了。譬如x=0.0000000000000000000000000000000001的時(shí)候,你的程序輸出是100.0。。。。。應(yīng)該就是出錯(cuò)在這里了。
還有我的老師告訴我,使用float不要用x==0這種表達(dá)方式,,因?yàn)閒loat類型的等于其實(shí)就是在有限的位數(shù)上比較大小。。。當(dāng)數(shù)字極小或者極大的時(shí)候就會(huì)出現(xiàn)不相等的數(shù)字會(huì)出現(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;
}
}