c語言主函式中任意輸入double型別的數值abc。然後呼叫自定義函式

2022-11-05 17:11:35 字數 4413 閱讀 1005

1樓:聽不清啊

這出題的老師,連一元二次方程、二元一次方程都混起來了。

#include

#include

void fun(double a,double b,double c)

if(d>0)

else

}int main()

2樓:polaris北斗

#include

#include

//計算並輸出一元二次方程的根

void fun(double a, double b, double c)

//計算判定式並求解

dt = b * b - 4 * a * c;

if(dt < 0.0)else if(dt == 0.0)elseprintf("\n");

}int main()

3樓:匿名使用者

#include

#include

void fun(double a,double b,double c)

}void main()

c語言中能否在一個自定義函式中呼叫另一個自定義函式?

4樓:七班趙子龍

當然copy

可以!c語言程式的最基本的模組就是函式,

該程式規定:任意函式都可以呼叫其它任意一個函式,包括函式本身;

1、函式呼叫自己本身, 這種稱為遞迴;

通過遞迴,計算1+2+3+...+n值的**:

2、自定義函式呼叫其它自定義函式的例子:

這個例子就是主函式呼叫自定義函式fun2,然後fun2呼叫另一個自定義函式fun1;

c語言被呼叫函式怎麼返回double型別的值給主函式呢?

5樓:愛默踢

double fun();

或者void fun(double &);

6樓:

double 方法名(引數)

c語言自定義函式,為什麼不能用double型別?

7樓:匿名使用者

用double時,請把**中的%f全改成%lf (long float的意思)再試試

c語言中double型別值的大小比較

8樓:匿名使用者

計算機在進行運算時首先根據資料的型別分配地址空間,分配完地址後首先將輸入的資料轉化為二進位制,然後進行運算。你輸入的數值a,從邏輯角度來看是正確,但從計算演算法來看是病態函式,即計算機進行二進位制轉換容易出錯的數值。從這一點可以看出,計算機沒有你聰明。

9樓:

在比較float和double型別的時候,因為float/double精度的問題

比如 1.000000001 可能和1.0000000000001相等

不應該直接使用 a > b 等類似的方式進行比較而是採用 兩個數做差取絕對值然後跟 你指定的精度進行比較便可得出 兩個double/float的大小

10樓:匿名使用者

不會有異常,輸出後面那個結果。比較時a,b會自動轉換格式的,轉換到double。

11樓:匿名使用者

沒有問題,你得這麼去想,if去做判斷實際上的操作也就是將a-b的值與0判斷。

第一個顯然不存在任何問題,同為雙精度型。

第二個與整型的比較,減法不丟失精度。

所以這兩個都不會存在問題。

12樓:匿名使用者

大小直接比較, 相等比較他們的差值在一定的誤差範圍內就認為是相等了。

比如:double d1,d2;

const double d = 0.0001;

if(d1 - d2 > -d && d1 - d2 < d);

認為d1與d2相等,否則不相等

13樓:子諾嫣然

你這樣比貌似不會有什麼異常

14樓:匿名使用者

可以這麼比較啊,不會有什麼異常,把上下**貼上來看看

c語言中double型別怎麼使用?

15樓:匿名使用者

c++中你想建立一個變數的時候,需要告訴編譯器變數的資料型別,以便編譯器給變數分配儲存空間。

格式:int i; 這是整型變數的宣告格式。

如果要宣告雙精度型變數,也就是小數,相同道理double i;

這樣編譯器就知道i是一個雙精度小數變數。

另外 float也表示小數,是單精度小數。float和double的區別在於,float所允許的小數範圍小,double允許的小數範圍大

16樓:l語言之父

double是c語言中的雙精度浮點數型別,用來表示實數。

1 定義:

double var_name;

這樣定義一個名字為var_name的double型別變數。

2 賦值:

var_name = 100.325;

同其它型別的賦值語句一樣,對var_name賦值用=運算子,右側可以是任意表示式。

3 輸入:

scanf("%lf", &var_name);

%lf格式符號對應double,可以用來對double型別輸入,以下輸出類似。

4 輸出:

printf("%lf", var_name);

17樓:匿名使用者

a中存的已經是double了,只不過是沒有輸出來而已你可以用

printf("%.9f\n",a);進行輸出

18樓:仲淳

%d表示輸入或輸出十進位制有符號數;%f表示輸入或輸出浮點數(float,四位元組表示);在c語言中輸出不同資料時需要用到不同的格式字元,%d是用來輸出十進位制整型資料的實際長度輸出,%f是以小數形式輸出單、雙精度度數。以下是詳細介紹:

c語言中%d和%f是什麼意思啊?

1、%d表示輸入或輸出十進位制有符號數;

2、%f表示輸入或輸出浮點數(float,四位元組表示);

3、另%lf表述輸入或輸出雙精度浮點數(double 8位元組表示);

4、在輸出不同資料時要用不同的的格式字元,比如說這個%d是用來輸出十進位制整型資料的實際長度輸出;%f是以小數形式輸出單、雙精度度數,隱含輸出6位小數;還有很多,如%s(輸出字串)

19樓:

你可以用printf("%.nf\n",a);控制小數位數,n隨你取值,只要在double精度範圍內即可

20樓:

表示把6.258e+6 賦值給y。用十進位制表示是:

6258000。 e是科學記數運算,數字很大的數,一般我們用科學記數法表示,例如6230000000000;我們可以用6.23×10^12表示,而它含義是什麼呢?

從直面上看是將數字6.23中6後面的小數點向右移去12位。

若將6.23×10^12寫成6.23e12,即代表將數字6.23中6後面的小數點向右移去12位,在記數中如「:

1. 3×10^4+4×10^4=7×10^4可以寫成3e4+4e4=7e4

即 aec+bec=a+bec (1)

2. 4×10^4-7×10^4=-3×10^4可以寫成4e4-7e4=-3e4

即 aec-bec=a-bec (2)

3. 3000000×600000=1800000000000

3e6*6e5=1.8e12

即 aem×ben=abe(m+n) (3)

21樓:匿名使用者

可進行格式化輸出啊,樓上回答過了!

c語言中關於double型資料的輸入

22樓:天使大哥***

這是一個初學者經常犯的一個錯誤,應該用%lf,因為double和float在記憶體分配上存在差異,所以用scanf函式進行輸入的時候要加以區別。

23樓:

把「f」定義成「float」型的就好了

24樓:匿名使用者

#include

void main()

這樣就可以了

25樓:匿名使用者

#include

void main()

26樓:匿名使用者

我也有這個問題,留名關注一下-_-b

用c語言程式設計編寫函式,用選擇法對主函式中的字元陣列進

include void sort char s int main include void xuanze char a,int n 選擇排序if k i int main xuanze a,n for i 0 i 10 i 用選擇排序,每次把ascii碼最大的字元放到字元數回組答的前面 inclu...

C語言寫一函式,求出字串的長度,在主函式中輸入字串,並

main你自己寫吧,函式 如下 slen char s 新增註釋 include define size 200 int length char src return count int main void include main int stringlength char s int compu...

C語言,求任意整數的位數,需要呼叫函式的方法,下面是我編

include long f long int x return i void main main printf d位數 n n long f long int x 函式定義這兒是不對的 長整形的輸入輸出格式有誤!將主函式中scanf語句改為 scanf ld x 最後一個輸出語句改為 printf...