c語言分段函數y
⑴ C語言計算分段函數的值為什麼不對呢
問題一,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);
就能按照你圖片發來的輸入方法操作,得到正確的結果了。
有什麼問題請留言。
⑵ C語言:如何使用switch語句編寫圖中的分段函數
C語言使用switch語句,編寫圖中的分段函數:
#include<stdio.h>
voidmain()
intx,y,flag;
printf("請輸入x:");
scanf("%d",&x);
flag=x<0?-1:(x<10?1:2);
switch(flag)
case-1:y=x;break;
case1:y=2*x-1;break;
case2:y=3*x-1;
printf("y=%d ",y);
簡介
C語言是一門面向過程的計算機編程語言,與C++、C#、Java等面向對象編程語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
C語言描述問題比匯編語言迅速、工作量小、可讀性好、易於調試、修改和移植,而代碼質量與匯編語言相當。C語言一般只比匯編語言代碼生成的目標程序效率低10%-20%。因此,C語言可以編寫系統軟體。