問題一,x和y都是雙精度型(double)數(shù)變量,用格式輸入和輸出時,要使用格式符%lf,否則會出錯,得不到正確的結果。
成都創(chuàng)新互聯(lián)網(wǎng)站建設公司是一家服務多年做網(wǎng)站建設策劃設計制作的公司,為廣大用戶提供了成都做網(wǎng)站、成都網(wǎng)站設計,成都網(wǎng)站設計,一元廣告,成都做網(wǎng)站選成都創(chuàng)新互聯(lián),貼合企業(yè)需求,高性價比,滿足客戶不同層次的需求一站式服務歡迎致電。
你用的%d是整型(int)數(shù)的輸出輸入格式符。
所以你必須把他們統(tǒng)一起來,方法一是:把scanf和printf兩個語句中的%d都換成%lf;方法二是:把前面定義語句double x,y;中的double換成int,語句變成:
int x,y;
采用上面兩個方法都可以讓程序正常運行。
問題二,scanf語句中雙引號當中有“x=”,全部是:
scanf("x=%d",x);
或scanf("x=%lf",x);
這樣的寫法,要求在程序運行時,輸入的內(nèi)容要包含雙引號內(nèi)除格式符以外的所有字符,即你一定要輸入:
x=2[回車]
系統(tǒng)才能讀到x的值2。值得注意的是,x的大小寫都必須跟程序中的大小寫相同!
所以,你在程序運行時,直接輸入:
2[回車]
系統(tǒng)并不會取得2,更不會把2賦值給x,所以,導致程序運行到后面,也不會得出正確的y的值(11)。
有鑒于此,也有兩個辦法讓程序正確運行:
方法一,輸入時按“x=2[回車]”;
方法二,由于按“x=”非常不方便,容易出錯,建議把輸入語句的x=去掉,改成:
scanf("%d",x);
或scanf("%lf",x);
就能按照你圖片發(fā)來的輸入方法操作,得到正確的結果了。
有什么問題請留言。
你的C語言程序中,else if的判斷條件都不對,比如在C語言中1=x10應該改成1=xx10以此類推,其它兩個也都不對,10=x30,應該改成10=xx30 ,30=x=60應該改成30=xx=60,就對了.
完整的更改后的C語言程序如下(改動的地方見注釋)
#includestdio.h
int?main()
{
int?x,y;
printf("輸入x的值:");
scanf("%d",x);
if?(x1)
{
y=x;
}
else?if?(1=x??x10)?//這里改一下
{
y=2*x-1;
}
else?if?(10=x??x30)?//這里改一下
{
y=3*x-1;
}
else?if?(30=x??x=60)?//這里改一下
{
y=4*x-2;
}
else
{
y=5*x;
}
printf("y的值為:%d\n",y);
return?0;
}
寫法1
if (x-5 x0) y = x;
if (x == 0) y=x-1;
if (x0 x10) y = x+1;
寫法2
if (x-5 x10)
{
y=x; //在這個范圍,不論怎樣,先把y賦值為x
if (x=0) //在這個范圍,需要對y值做修改
{
y = y-1; //先把y-1再說,對應x=0的情況,如果x!=0,那么我們再次修改
if(x0)
y = y+2; //剛剛y-1了,所以需要+2
}
}
寫法3,終于是正常點的做法了
if (x-5 x0) y=x;
else
{
if (x10)
{
if (x==0) y=x-1;
else y=x+1;
}
}
寫法4
switch(x)
{
case 0:
y=x-1;
break;
case -4;
case -3;
case -2;
case -1;
y=x;
break;
case 1;
case 2;
case 3;
case 4;
case 5;
case 6;
case 7;
case 8;
case 9;
y=x+1;
break;
}
我想問你個問題:你是不是用x = -1測試的??
那么y = x-1 跟 y = 2x的結果不是一樣么,都是-2啊。。。不要因此得出結論x=-1的時候y=2x
另外,你這個函數(shù)如果用if就全用if,如果用if--else-if,就全部這樣,不要混合用,很亂。
建議都用if--else if,這樣能夠看出是一個分段函數(shù)。
肯定出錯了,x0難道就不10?所以else if(x10)似乎應該是else if(x=0 x10)吧?
網(wǎng)站題目:C語言分段函數(shù)問題 用C語言編寫一個分段函數(shù)
網(wǎng)站URL:http://jinyejixie.com/article4/dosoooe.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設、網(wǎng)站收錄、動態(tài)網(wǎng)站、電子商務、網(wǎng)站制作、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)