C語言計算分段函式的值為什麼不對呢?

2025-02-27 12:30:04 字數 3148 閱讀 4434

1樓:岔路程式緣

問題一,x和y都是雙精度型(double)數變數,用格式輸入和輸出時,要使用格式符%lf,否則會出錯,得不到正確的結果。

你用的%d是整型。

int)數的輸出輸入格式符。

所以你必須把他們統一起來,方法一是:把scanf和printf兩個語句中的%d都換成%lf;方法二是:把前面定義語句double x,y;中的double換成int,語句變成:

int x,y;

採用上面兩個方法都可以讓程式正常執行。

問題二,scanf語句中雙引號當中有「x=」,全部是:

scanf("x=%d",&x);

或scanf("x=%lf",&x);

這樣的寫法,要求在程式執行時,輸入的內容要包含雙引號內除格式符以外的所有字元,即你一定要輸入:

x=2[回車]

系統才能讀到x的值2。值得注意的是,x的大小寫都必須跟程式中的大小寫相同!

所以,你在程式執行時,直接輸入:

2[回車]系統並不會取得2,更不會把2賦值給x,所以,導致程式執行到後面,也不會得出正確的y的值(11)。

有鑑於此,也有兩個辦法讓程式正確執行:

方法一,輸入時按「x=2[回車]」;

方法二,由於按「x=」非常不方便,容易出錯,建議把輸入語句的x=去掉,改成:

scanf("%d",&x);

或scanf("%lf",&x);

就能按照你**發來的輸入方法操作,得到正確的結果了。

2樓:聽不清啊

程式中有兩個問題,第一是雙精度浮點數的格式輸入和輸出函式的格式符是%lf,輸入函式和輸出函式中都要更改。第二次格式輸入中,一般強烈不建議寫x=之類的資訊,因為寫了的話,執行時也不會出現這個提示,反而要求執行程式的人,也必須要輸入完全一樣的格式才可以。所以如果是圖中的程式執行時,就必須要輸入x=2才行。

3樓:這密碼是我生日

把scanf括號裡面的x=去掉。

scanf裡面不要寫別的東西。不要寫多餘的字元,只寫要賦值的東西。

printf輸出才可以寫字串等輸出的字元。

因為是double雙精度,把%f都改為%lf試試。

我試了一下,應該是可以了。以下是我除錯的結果。

int main()

double x=0,y=0;

scanf("%lf",&x);

printf("x=%lf",x);

if(x>2)

y=2*x+5;

elsey=3*x*x-1;

printf("y=%lf",y);

system("pause");

return 0;除錯結果:

x=y=請按任意鍵繼續。 .

c語言計算分段函式的值,做作業錯拉,找不到問題,誰幫我糾正下!

4樓:網友

#include

void main()

你的錯誤好多哦,真是考眼力。

5樓:水晶文鑫

"0≤x<1"不能這樣寫 應該這樣寫x>=0&&x<1類似的改一下試一試。

6樓:網友

昏,這叫找不出錯個,上面幾個大哥都給你說了,你的錯誤真多,關係運算,條件判斷……自己好好看看吧…這些應該是很基礎的…

c語言, 乙個分段函式的計算 ,高手看看有什麼問題, 從大於0的數開始都不對了

7樓:汐日南莘

#include

#include

void main()

float x,y;

printf("請輸入x: ");

scanf("%f",&x);

printf("輸入x=: %f",x);

if(x<0)

y=5-x;

else if(x==0)//是等於號 就這乙個問題y=0;

else if(x>0&&x<10)

y=sqrt(2*x)-1;

elsey=3*x-11;

printf("y=%f",y);

8樓:龍__鳳

x和0相等,是這樣比較的x==0,你的是x=0是賦值,把這個改了就可以了。

9樓:網友

把第乙個else刪除最後乙個else改if (x大於10)

原因你的條件語句邏輯錯誤。

c語言求分段函式的值

10樓:網友

x改成float型別,第一句printf結尾的分號是中文的,沒必要esle if,要清。

空緩衝區,否則程式會一閃而過。

#include

#include

void main()

11樓:張仁華

兩個語句不需要用到else if

12樓:尉廣英九書

x<=-1好像會出錯,定義不允許根式裡面為負、分母為零;

x<0時,z就等於根號(1+x)的倒數;

x=0;z=0;

x>0時,log(x)有意義,z=log(x);

用c語言求分段函式值

13樓:馬新筠營兒

抱歉,剛才有兩個分號是用中文輸入法輸入的。

導致c無法識別。

語句結束要加分號。1=

#include

voidmain()

printf("%lf",y);}

14樓:墨翮柏瀚昂

樓上2位的邏輯表示式有問題。

#include

intmain(void)

c語言題求分段函式的結果,要求用函式來做,這是我的程式為什麼算不出正確結果,答案一直是乙個定值

15樓:匿名使用者

你這是c++啊 輸入輸出應該用cin cout吧。

用c語言程式設計計算分段函式y值

16樓:一口沒水的枯井

**如下:

int fun(int x)

希望對你有幫助~

c語言程式設計計算246898100的值

include main printf s d n s ps 按照前面的規律,最後應該是 98 100吧,用什麼語言?給你個能顯示計算過程的批處理吧,上面都是用for迴圈,還可以用if加goto語句。沒驗算,複製下面 用記事本儲存為abc.bat,雙擊執行。echo off set aa 0 set...

C語言中什麼叫呼叫函式?為什麼函式和函式之間是呼叫關係

呼叫函式就是計算機編譯或執行時,使用某個函式來完成相關命令。對無參函式呼叫時則無實際參數列。實際參數列中的引數可以是常數 變數或其它構造型別資料及表示式。各實參之間用逗號分隔。在程式中通過對函式的呼叫來執行函式體,其過程與其它語言的子程式呼叫相似。c語言中,函式呼叫的一般形式為 函式名 實際參數列 ...

c語言程式設計計算並輸出以下算式的值

include void main include void main printf d sum int i,sum 0,t 1 for i 1 i 5 i 用c語言程式設計計算 1 2 3 4 5 int sum 1 這是1的階乘,沒必要參與迴圈運算int product for int i 5 ...